/********************************************************
GLOBAL JS VARIABLES
*********************************************************/
var currentPixel;
var isMaxZoomed = 'false';

editButtons = false;

/********************************************************
INITIALIZE THE PAGE
*********************************************************/
function initialize() {
	//Load the search results for the first time
	ajaxFunc($('searchForm'));
	getComments();
	resetAll();
	//$('activationBtnsDiv').style.display='block';
	
	
}

function resetAll() {
	//reset all forms
	var elements=document.getElementsByTagName('FORM');
	for (i=0;i<elements.length;i++) {
		elements[i].reset();
	}
}
/********************************************************
RESET FUNCTIONS
*********************************************************/
function logoutReset() {
	if ($('editForm').style.display=='none') {
		toggleLoggedIn('toggleLogIn();');
	} else {
		toggleEditForm("toggleLoggedIn('toggleLogIn();');");
	}
	$('signUpForm').reset();
	$('sendPageYourInfo').style.display='';
	resetAll();
	$('topSignUpCopy').style.display='inline';
}

function detectReset() {
	if ($('editForm').style.display != 'none') {
		toggleEditForm("toggleBlind('editButton','void(0);')");
	} else if ($('signUpForm').style.display != 'none') {
		toggleSignUp('toggleLogIn();');
	}

}

/********************************************************
GENERAL FUNCTIONS
*********************************************************/
function trackCommentScroll(commentUser) {
	//Google analytics
	pageTracker._trackPageview('/comment/scroll/'+commentUser);
}

function trackConnect(commentUser) {
	//Google analytics
	pageTracker._trackPageview('/zoom/connect/'+commentUser);
}

function trackSearch(searchUser) {
	//Google analytics
	pageTracker._trackPageview('/zoom/search/'+searchUser);
}

function initialLogIn() {
	toggleSignUp('toggleLoggedIn("toggleEditForm(1);");');
	//toggleSignUp('toggleLoggedIn("toggleEditForm(1);toggleInline(null,1);");');
}

function dotCreated() {
	$('signedInMsg').innerHTML='Your dot has been created.  Explore the painting, and connect with your fellow artists.';
	showDotBtns();
}

function showDotBtns() {
	//alert(editButtons);
	$('createMyDotBtn').src='/img/btn_edit.gif';
	$('viewMyDotBtn').style.display='block';
}

function hideDotBtns() {
	$('createMyDotBtn').src='/img/btn_create.gif';
	$('viewMyDotBtn').style.display='none';	
}

function blindDown(id) {
	new Effect.BlindDown(id);
}

function fadeIn(id) {
	new Effect.Appear(id);
}

function newPassword(eml,pw) {
var elements;
elements=$('logInForm').getElementsByTagName('INPUT');

elements[0].value=eml;
elements[1].value=pw;

}

function toggleBlind(id,afterfinish) {
	new Effect.toggle(id,'blind',
		{
			duration: 0.5,
			afterFinish: function() { eval(afterfinish); } 
		}
	);
}

function switchDivs(id1,id2){
	new Effect.toggle(id1,'appear',{queue: 'front'});
	new Effect.toggle(id2,'appear',{queue: 'end'});
}

function toggleInline(afterfinish,whichVar) {
	
	var x;
	var offset=window.pageYOffset;
		
	switch (whichVar) {
		case 1:
		x='myAccountDiv';
		break;
		
		case 2:
		x='infoDiv';
		break
		
		case 3:
		x='privacyDiv';
		break
		
		case 4:
		x='msgDiv';
		break
		
		case 5:
		x='resetPasswordDiv';
		break
		
		case 6:
		x='globalLoadDiv';
		break
		
		default:
		x='noDiv';
		break;	
	}
	
	if ($('inlinePop').style.display=='none') {
		new Effect.Parallel(
		[ new Effect.Appear('inlinePop'), 
		  new Effect.Appear(x), 
		  new Effect.Appear('popBG',{from:0.0,to:0.9})
		  ],
		{ duration: 0.5, 
		  afterFinish: function() { eval(afterfinish); }
		}
		);
		
		//Google analytics
		pageTracker._trackPageview('/inlinePopup/' + x);
		
		
		//$(x).style.marginTop=offset+'px';
		
		
	} else {
		
		$('myAccountMsg').innerHTML='';
		$('resetPasswordDiv').style.display = 'none';
		
		
		
		if ($('myAccountDiv').style.display=='') {
			x = 'myAccountDiv';
		} else if ($('infoDiv').style.display=='') {
			x = 'infoDiv';
		} else if ($('privacyDiv').style.display=='') {
			x = 'privacyDiv';
		} else if ($('alertDiv').style.display=='') {
			x = 'msgDiv';
		}
		
		new Effect.Parallel(
		[ new Effect.Fade('inlinePop'), 
		  new Effect.Fade(x),
		  new Effect.Fade('popBG')
		  ],
		{ duration: 0.5, 
		  afterFinish: function() { eval(afterfinish);$('myAccountMsg').innerHTML='';$('nonPassword').style.display='block';$('globalLoadDiv').style.display = 'none'; }
		}
		);
	}
}

function hideInline(evt) {
	if (!evt) var evt = window.event;
	var e = (window.event) ? evt.srcElement : evt.target;
	if(e.id != 'alertDiv') { return; }
	if ($('globalLoadDiv').style.display == 'none') {
		toggleInline(null,null);
	}
}
/********************************************************
COMMENTS SECTION
*********************************************************/
function clearDefault(theTextArea) {
	if (theTextArea.value="Enter your comment here ...") {
		theTextArea.value='';
	}
}

function commentShortcut(id) {
	getCommentDetail(id);
	toggleCommentSummary('toggleCommentDetail();');
}

function hideThankYou() {
setTimeout(toggleCommentThankYou,1500);
}

function commentSuccessShortcut() {
	toggleCommentSubmit('toggleCommentThankYou("hideThankYou();");');
}


function revealComments(pixel,bool) {

//alert("Pixel:" +pixel+". Bool: "+bool);
//alert("IsMaxZoomed:" + isMaxZoomed);
	//getComments(page,pixel);

	if (bool == 'true') {
		getComments(0,pixel);
	} else if (isMaxZoomed!=bool) {
		//alert('should reset');
		$('header_comments').src='/img/header_comments.gif';
		getComments(0);
	}

	currentPixel = pixel;
	isMaxZoomed = bool;
}

/********************************************************
MODULE FUNCTIONS
*********************************************************/

function toggleLogIn(afterfinish) {

	if ($('logInForm').style.display=="none") {
	
	$('editButton').style.display='';
	
		new Effect.Parallel(
		    [ new Effect.BlindDown('logInForm'), 
		      new Effect.Appear('logInHeader'),
		      new Effect.Appear('logInForm')
			  ],
		    { duration: 0.5, 
		      afterFinish: function() { eval(afterfinish); }
		    }
		);
		
		//Google analytics
		pageTracker._trackPageview('/logIn/show');
			
	} else {
		
		new Effect.Parallel(
		    [ new Effect.BlindUp('logInForm'), 
		      new Effect.Fade('logInHeader') ],
		    { duration: 0.5, 
		      afterFinish: function() { hideDotBtns();eval(afterfinish);}
		    }
		);
		
	}
}

function toggleSignUp(afterfinish) {
	
	var whichModule = 'sendPage';
			
	if ($('signUpForm').style.display=='none') {
	
		new Effect.Parallel(
		    [ new Effect.BlindDown('signUpForm'), 
		      new Effect.Appear('signUpHeader'),
			  new Effect.BlindUp(whichModule) ],
		    { duration: 1.5, 
		      afterFinish: function() { $('signUpEmail').focus(); eval(afterfinish); }
		    }
		);
		
		//Google analytics
		pageTracker._trackPageview('/signUp/show');
	
	} else {
	
		new Effect.Parallel(
		    [ new Effect.BlindUp('signUpForm'), 
		      new Effect.Fade('signUpHeader'),
			  new Effect.BlindDown(whichModule) ],
		    { duration: 1.0, 
		      afterFinish: function() { eval(afterfinish); }
		    }
		);
	
	}

}

function toggleSignUpMessage(afterfinish) {

	if ($('successDiv').style.display=='none') {
	
		new Effect.Parallel(
		    [ new Effect.BlindDown('successDiv'), 
		      new Effect.Appear('successHeader')
			  ],
		    { duration: 0.5, 
		      afterFinish: function() { eval(afterfinish); }
		    }
		);

	} else {
	
		new Effect.Parallel(
		    [ new Effect.BlindUp('successDiv'), 
		      new Effect.Fade('successHeader') ],
		    { duration: 1.0, 
		      afterFinish: function() { eval(afterfinish); }
		    }
		);
	
	}

}

function toggleLoggedIn(afterfinish) {

	if ($('loggedInDiv').style.display=='none') {
	
		new Effect.Parallel(
		    [ new Effect.BlindDown('loggedInDiv'), 
		      new Effect.Appear('loggedInHeader')
			  ],
		    { duration: 0.5, 
		      afterFinish: function() { eval(afterfinish);
			  }
		    }
		);
		
	} else {
	
		new Effect.Parallel(
		    [ new Effect.BlindUp('loggedInDiv'), 
		      new Effect.Fade('loggedInHeader') ],
		    { duration: 1.0, 
		      afterFinish: function() { eval(afterfinish); }
		    }
		);
	
	}

}

function toggleEditForm(afterfinish) {

	if (afterfinish == 1) {
		$('editButton').style.display='none';
		
		}

	if ($('editForm').style.display == 'none') {
	
		new Effect.Parallel(
		    [ new Effect.BlindDown('editForm'),
			new Effect.BlindUp('sendPage'),
			new Effect.BlindUp('searchForm')
			],
		    { duration: 1.0, 
		      afterFinish: function() {
				if ($('myNameInput').value=='') {
					$('myNameInput').focus();
				}
				eval(afterfinish);
				}
		    }
		);
		
		//Google analytics
		pageTracker._trackPageview('/edit/show');

	} else {
	
		new Effect.Parallel(
		    [ new Effect.BlindUp('editForm'),
			 new Effect.BlindDown('sendPage'),
			 new Effect.BlindDown('searchForm')
			 ],
		    { duration: 1.0, 
		      afterFinish: function() { eval(afterfinish); }
		    }
		);
	
	}

}

function toggleCommentSummary(afterfinish) {

	if ($('comments').style.display != 'none') {
	
		new Effect.Parallel(
		    [ new Effect.Fade('comments'),
			new Effect.Fade('commentSubmitBtn')
			],
		    { duration: 1.0, 
		      afterFinish: function() { eval(afterfinish); }
		    }
		);

	} else {
	
		new Effect.Parallel(
		    [ new Effect.Appear('comments'),
			new Effect.Appear('commentSubmitBtn')
			 ],
		    { duration: 1.0, 
		      afterFinish: function() { eval(afterfinish); }
		    }
		);
	
	}

}

function toggleCommentThankYou(afterfinish) {
		
	if ($('submitCommentThanks').style.display != 'none') {
	
		toggleCommentSummary("$('submitCommentThanks').style.display='none';");
		
		//Google analytics
		pageTracker._trackPageview('/comment/submitted');
	
	} else {
	
		new Effect.Parallel(
		    [ new Effect.Appear('submitCommentThanks')
			 ],
		    { duration: 1.0, 
		      afterFinish: function() { eval(afterfinish); }
		    }
		);
	
	}

}

function toggleCommentDetail(afterfinish) {
	if ($('commentDetail').style.display != 'none') {
		new Effect.Parallel(
		    [ new Effect.Fade('commentDetail'),
			new Effect.Fade('commentDetailBtn')
			],
		    { duration: 1.0, 
		      afterFinish: function() { eval(afterfinish); }
		    }
		);
	} else {
		new Effect.Parallel(
		    [ new Effect.Appear('commentDetail'),
			new Effect.Appear('commentDetailBtn')
			 ],
		    { duration: 1.0, 
		      afterFinish: function() { eval(afterfinish); }
		    }
		);
	}
}

function toggleCommentSubmit(afterfinish) {
	if ($('commentSubmit').style.display != 'none') {
		new Effect.Parallel(
		    [ new Effect.Fade('commentSubmit'),
			new Effect.Fade('commentCancelBtn')
			],
		    { duration: 1.0, 
		      afterFinish: function() { eval(afterfinish); }
		    }
		);
	} else {
		new Effect.Parallel(
		    [ new Effect.Appear('commentSubmit'),
			 new Effect.Appear('commentCancelBtn')
			 ],
		    { duration: 1.0, 
		      afterFinish: function() { eval(afterfinish); }
		    }
		);
	}
}

//Toggle the invite code input box
function toggleInviteCode(radio){

	if (radio.getAttribute('id')=="inviteCodeRadio") {
		//$('inviteCode').focus();
	}
	
	if (!(radio.getAttribute('id')=="applyCodeRadio" && $('inputCodeDiv').style.display=='none')) {
		new Effect.toggle('inputCodeDiv','blind', {
		afterFinish: function() { if ($('inputCodeDiv').style.display != 'none') { $('inviteCode').focus();} }
		}
		);
		
	}
	
}

/********************************************************
EDIT FUNCTIONS
*********************************************************/
function fileUpload() {
	$('picture_upload').innerHTML='<img src=\"img/loading.gif" class="loading" />';$('pictureform').submit();$('pictureform').reset();
}

function populateFields(field1, field2, field3, field4, field5) {
	var fieldVals = new Array();
	
	fieldVals[0]=field1;
	fieldVals[1]=field2;
	fieldVals[2]=field3;
	fieldVals[3]=field4;
	fieldVals[4]=field5;
	
	elements=$('activitiesForm').getElementsByTagName("INPUT");
	
	for (i=0;i<(elements.length-1);i++) {
		if (fieldVals[i] != undefined) {
			elements[i].value=fieldVals[i];
		} else {
			elements[i].value='';
		}
	}
	

}

/********************************************************
ADD AN EMAIL ADDRESS
*********************************************************/
function addField(id) {

	el=document.createElement('div');
	el.className='moduleCenter bottomSpace';
	
	smallDiv=document.createElement('div');
	smallDiv.className='small';
	
	smallInput=document.createElement('input');
	smallInput.setAttribute('name','friendname[]');
	smallInput.setAttribute('type','text');
	
	largeDiv=document.createElement('div');
	largeDiv.className='large';
	
	largeInput=document.createElement('input');
	largeInput.setAttribute('name','friendemail[]');
	largeInput.setAttribute('type','text');
	
	divider=document.createElement('div');
	divider.className="clear flat";
	
	
	smallDiv.appendChild(smallInput);
	largeDiv.appendChild(largeInput);
	
	el.appendChild(smallDiv);
	el.appendChild(largeDiv);
	el.appendChild(divider);
	
	document.getElementById(id).appendChild(el);
}
/********************************************************
AJAX SECTION
*********************************************************/
function attemptSignUp(email,password,code,source) {
	var pars;
	var url    = '/ajax/processor.php';
	pars += '?signUpEmail='+email;
	pars += '&signUpPassword='+password;
	pars += '&inviteCode='+code;
	pars += '&source='+source;
	pars += '&inviteCodeBoolean=1';
	pars += "&rand="+Math.random();
	
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars,onLoading: function () { 
		$('logInError').innerHTML='<p class=\"content\"><img src="/img/loading.gif" class="loading topSpace" /></p>';
	}, onComplete: showResponse} );
}

function attemptRegisterLogin(email,code,prompt) {

	$('signUpLoader').innerHTML='';
	toggleSignUp('toggleLogIn();');
	setTimeout(attemptLogin(email,code,prompt),1000);
	ajaxFunc($('searchForm'));
	//$('activationBtnsDiv').style.display='block';
	
}

function attemptLogin(email,code,prompt) {
	var pars;
	var url    = '/ajax/processor.php';
	pars += '?email='+email;
	pars += '&password='+code;
	pars += '&prompt='+prompt;
	pars += "&rand="+Math.random();
	
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars,onLoading: function () { 
		$('logInError').innerHTML='<p class=\"content\"><img src="/img/loading.gif" class="loading topSpace" /></p>';
	}, onComplete: showResponse} );
}

function entryPoint(name,email,code,source) {
	var pars;
	var url    = '/ajax/processor.php';
	pars += '?getName='+name;
	pars += '&getEmail='+email;
	pars += '&getCode='+code;
	pars += '&source='+source;
	pars += "&rand="+Math.random();
	
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars,onLoading: function () {  }, onComplete: showResponse} );
}

function zoomToMyPixel() {
	var pars;
	var url    = '/ajax/processor.php';
	pars += '?mypixel=1';
	pars += "&rand="+Math.random();
	
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars,onLoading: function () {  }, onComplete: showResponse} );
	
	//Google analytics
	pageTracker._trackPageview('/zoom/my');
}

function logout() {
	var pars;
	var url    = 'ajax/processor.php';
	pars += '?logout=1';
	pars += "&rand="+Math.random();
	
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars,onLoading: function () {  }, onComplete: showResponse} );
}

/**SEARCH  **/
function searchPage(page) {
	var pars;
	var url = 'ajax/processor.php';
	if ($('searchInput').value.length > 0) {
		pars += '?search=' + $('searchInput').value;
	} else {
		pars += '?search=';
	}
	pars += '&searchPage='+page;
	pars += "&rand="+Math.random();
	
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars,onLoading: showLoad($('searchForm').getElementsByTagName('INPUT')), onComplete: showResponse} );
	
	//Google analytics
	pageTracker._trackPageview('/search/scroll');
}

/** GET A SUMMARY OF THE COMMENTS  **/
function getComments(page,pixel,user) {
	var pars;
	var url    = 'ajax/processor.php';
	pars += '?getComments=1';
	if (page) { pars += "&commentPage=" + page; }
	if (user) { pars += "&commentUser=" + user; }
	if (pixel) { pars += "&commentPixel=" + pixel; }
	pars += "&rand="+Math.random();
	//alert(pars);
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars,onLoading: showCommentsLoad(), onComplete: showResponse} );
}

	function showCommentsLoad() {
		$('comments').innerHTML='<img src="/img/loading_green.gif" class="loading topSpace" />';
	}

/** GET ONE COMMENT **/
function getCommentDetail(id) {
	var pars;
	var url    = 'ajax/processor.php';
	pars += '?getComment='+id;
	pars += "&rand="+Math.random();
	
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars,onLoading: showCommentDetailLoad(), onComplete: showResponse} );
}

	function showCommentDetailLoad() {
		$('commentDetail').innerHTML='<img src="/img/loading_green.gif" class="loading topSpace" />';
	}

/** GET ALL INFO ABOUT LOGGED IN USER **/
function getUserInfo(id) {
	var pars;
	var url    = 'ajax/processor.php';
	pars += '?user_id='+id;
	pars += "&rand="+Math.random();
	
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars,onLoading: showUserLoad(), onComplete: showResponse} );
}

	function showUserLoad() {
		$('user_name').innerHTML='<img src="/img/loading.gif" class="loading topSpace" />';
		$('picture_upload').innerHTML='<img src="/img/loading.gif" class="loading topSpace" />';
	}

/** GENERAL FUNCTION -- FORM SUBMISSION ONLY -- USED IN MULTIPLE PLACES -- DIFFERENCES ARE CAUGHT IN THE showLoad() SWITCH**/
function ajaxFunc(theForm,grabName) {
	
	var pars='';
	var url    = 'ajax/processor.php?';
	
	var elements=theForm.getElementsByTagName('INPUT');
	
	for (i=0;i<elements.length;i++) {
		if ((elements[i].getAttribute('type') == 'radio' && elements[i].checked==true) || (elements[i].getAttribute('type') != 'radio')) {
			url = url + escape(elements[i].getAttribute('name')) + "=" + escape(elements[i].value);
			url += "&";
		}
	}
	
	var txtareas=theForm.getElementsByTagName('TEXTAREA');
	
	for (i=0;i<txtareas.length;i++) {
		url = url + escape(txtareas[i].getAttribute('name')) + "=" + escape(txtareas[i].value);
		url += "&";
	}
	
	if (grabName == 1) {
	url += "myName=" + $('myNameInput').value + "&";
	}
	
	url = url + "rand="+Math.random();
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars,onLoading: showLoad(elements), onComplete: showResponse} );
}

function showResponse (originalRequest) 
{
	eval(unescape(originalRequest.responseText));
}

function showLoad (elements) {

	switch (elements[0].name) {
	
		case "email": //Log in
			//alert("email");
			$('logInError').innerHTML='<p class=\"content\"><img src="/img/loading.gif" class="loading topSpace" /></p>';
		break;
		
		case "search": //Live search
			//alert("search");
			$('searchResponse').innerHTML='<img src="/img/loading.gif" class="loading" />';
		break;	
		
		case "yourname": //Send to a friend
			//alert("yourname");
			$('emailMsg').innerHTML='<img src="/img/loading.gif" class="loading" />';			
		break;	
		
		case "signUpEmail": //Send to a friend
			//alert("yourname");
			$('signUpLoader').innerHTML='<img src="/img/loading.gif" class="loading" />';				
		break;
		
		case "emailReminder": //Password reminder
			$('resetPasswordMsg').innerHTML='<img src="/img/loading.gif" class="loading" />';
		break;
		
		//My Account
		case "newname": //Change My Name
			$('myAccountMsg').innerHTML='<img src="/img/loading.gif" class="loading" />';				
		break;
		
		case "newemail": //New Email
			$('myAccountMsg').innerHTML='<img src="/img/loading.gif" class="loading" />';				
		break;
		
		case "newpassword": //New Password
			$('myAccountMsg').innerHTML='<img src="/img/loading.gif" class="loading" />';				
		break;
		
		default:
		break;
		
		}
		
		
}


/********************************************************
FLASH
*********************************************************/
AC_FL_RunContent = 0;


function reloadPixel(i) {
	var i;
	zoomToPixel(i);
}
