function getAjaxClicks(url){
	pageTracker._trackPageview(url+"/clicks");
	_em.trackAjaxPageview(url+"/clicks");
}

function validURL(url) {
	var v = new RegExp();
	v.compile("^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%;:&\?\/.=]+$");
	if (!v.test(url)) { return false;	}
	else { return true; }
} 
function limitTo(el,limit) {
	if (el.value.length > limit)
	el.value = el.value.substring(0, limit);
}
function trim(str){
	return str.replace(/^\s*|\s*$/g,"");
}

function sfHover() {
	if($("menuul")){
		var sfEls2 = document.getElementById("menuul").getElementsByTagName("LI");
		for (var i=0; i<sfEls2.length; i++) {
			sfEls2[i].onmouseover=function() { 
				Element.addClassName(this,'sfhover');
			}
			sfEls2[i].onmouseout=function() { 
				Element.removeClassName(this,'sfhover')
			}
		}
	}
}

function setMaxLength() {
	var x = document.getElementsByTagName('textarea');
	var counter = document.createElement('div');
	
	counter.className = 'counter';
	
	for (var i=0;i<x.length;i++) {
		if (x[i].getAttribute('maxlength')) {
			var counterClone = counter.cloneNode(true);
			
			counterClone.relatedElement = x[i];
			counterClone.innerHTML = '<span>0</span>/'+x[i].getAttribute('maxlength');
			x[i].parentNode.insertBefore(counterClone,x[i].nextSibling);
			x[i].relatedElement = counterClone.getElementsByTagName('span')[0];
			x[i].onkeyup = x[i].onchange = checkMaxLength;
			x[i].onkeyup();
		}
	}
}

function checkMaxLength() {
	var maxLength = this.getAttribute('maxlength');
	var currentLength = this.value.length;
	
	if (currentLength > maxLength){
		this.relatedElement.className = 'maxlength';
		this.value=this.value.substring(0,maxLength);
		this.relatedElement.firstChild.nodeValue = currentLength-1;
	}else{
		this.relatedElement.className = '';
		this.relatedElement.firstChild.nodeValue = currentLength;
	}
}

function testFileType2(filezz) {
	fileName = $(filezz).value;
	fileTypes = new Array ('.gif', 'jpg', 'png', 'jpeg');
	if (!fileName) return;
	dots = fileName.split(".")
	fileType = "." + dots[dots.length-1];
	if(fileTypes.join(".").indexOf(fileType.toLowerCase()) != -1){
	}else{
		$(filezz).value = '';
		alert("Please only upload files that end in types: \n\n" + (fileTypes.join(" .")) + "\n\nPlease select a new file and try again.");
	}
}

function testFileType() {
	fileName = $('photo').value;
	fileTypes = new Array ('.gif', 'jpg', 'png', 'jpeg');
	if (!fileName) return;
	dots = fileName.split(".")
	fileType = "." + dots[dots.length-1];
	if(fileTypes.join(".").indexOf(fileType.toLowerCase()) != -1){
	}else{
		$('photo').value = '';
		alert("Please only upload files that end in types: \n\n" + (fileTypes.join(" .")) + "\n\nPlease select a new file and try again.");
	}
}

/*carousel functions*/
var carouselChangevar = 0;
var carouselM;
var carouselImgall = 0;

function carouselPick(content){
	carouselChangevar = content;
	count = 0;			
	i = 1;
	
	while(i <= carouselImgall){			
		document.getElementById("cFeat"+i).style.top = (i*10)+"px";
		document.getElementById("cFeat"+i).style.display = "none";
		$('ccNum'+i).removeClassName('selected');
		
		i++;
	}
	
	Effect.Appear("cFeat"+content);
	$('ccNum'+content).addClassName('selected');
	document.getElementById("cFeat"+content).style.top = "0px";
}

function carouselChange(){
	carouselChangevar++;
	
	if(carouselChangevar > carouselImgall){ carouselChangevar = 1; }
	
	carouselPick(carouselChangevar);
	
	carouselM = setTimeout("carouselChange();",8000);
}

function carouselLoadme(total){
	carouselImgall = total;
	
	carouselChange();
}

function carouselPause(){
	clearTimeout(carouselM);
	$('ccPause').style.display = "none";
	$('ccPlay').style.display = "block";
}

function carouselPlay(){
	carouselM = setTimeout("carouselChange();",8000);
	$('ccPause').style.display = "block";
	$('ccPlay').style.display = "none";
}

function carouselPrev(){
	clearTimeout(carouselM);
	
	if(carouselChangevar == 1){
		carouselChangevar = carouselImgall;
	}else{
		carouselChangevar--;
	}
	
	carouselPick(carouselChangevar);
	
	carouselM = setTimeout("carouselChange();",8000);
}

function carouselNext(){
	clearTimeout(carouselM);
	
	if(carouselChangevar == carouselImgall){
		carouselChangevar = 1;
	}else{
		carouselChangevar++;
	}
	
	carouselPick(carouselChangevar);
	
	carouselM = setTimeout("carouselChange();",8000);
}

/*gallery functions*/
var changevar = 1;
var imgall = 0;

function pickme(content){
	changevar = content;
	count = 0;			
	i = 1;
	
	while(i <= imgall){
		document.getElementById("fp"+i).style.display = "none";
		document.getElementById("fd"+i).style.display = "none";
		
		i++;
	}
	
	Effect.Appear("fp"+content);
	Effect.Appear("fd"+content);
	
	getAjaxClicks(chnnl+"/load-images");
}

function turnGallPage(page){
	i = 1;
	
	while(i <= pageall){
		document.getElementById("igiDiv"+i).style.display = "none";
		
		i++;
	}
	
	Effect.Appear("igiDiv"+page);
	
	getAjaxClicks(chnnl+"/flip-gallery-page");
}

/*refer friend*/
function referThis(){
	var showResponse = function (originalRequest) {
		if(originalRequest.responseText == "success"){
			$('referMess').innerHTML = "Thanks for referring your friends to the Cosmo.ph community! Tell them personally that you have referred them to Cosmo so they can expect AND accept your invitation to become Cosmo.ph members, too!";
			$('referForm').reset();
		}else{
			$('referMess').innerHTML = originalRequest.responseText;
		}
		
		$('referBt').disabled = false;
	};
	var showProgress = function () { $('referMess').innerHTML = 'submitting...'; $('referBt').disabled = true; }
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	
	if(filter.test($F('refer'))){ 
		Element.removeClassName($('refer').parentNode,'formError');
		parameter = "refer="+ $F('refer');
		
		var url = publicdomainobj + "refer-friend/refer.xml.php";
		var myAjax = new Ajax.Request( url, { method: 'post', parameters: parameter, onComplete: showResponse, onLoading: showProgress });
		
		getAjaxClicks(chnnl+"/submit");
	}else{
		alert("The email address you entered is invalid.\nPlease enter a valid email address."); 
		Element.addClassName($('refer').parentNode,'formError');
	}
}

/*rating*/
function markMyRating(mark){
	for(i=1; i <= 5; i++){
		Element.removeClassName($('rateBt'+i),'selected');
		Element.removeClassName($('rateBt'+i),'selectedHalf');
	
		if(mark > 0){
			if(mark >= 1){
				$('rateBt'+i).className = "selected";
			}else{
				if(mark >= .3 && mark <= .7){
					$('rateBt'+i).className = "selectedHalf";
				}else if(mark > .7){
					$('rateBt'+i).className = "selected";
				}
			}
		}
		
		mark--;
	}
}

function rateMyRating(id, rating){
	var showResponse = function (originalRequest) { $('rateDiv').innerHTML = originalRequest.responseText; };
	var showProgress = function () { $('rateDiv').innerHTML = 'rating...'; }

	var params = "id="+ id +"&rating="+ rating +"&table="+ $F('ratingTable') +"&idName="+ $F('ratingIdName');
	url = publicdomainobj + "rate.xml.php";
	var myAjax = new Ajax.Request( url,{method: 'post', parameters: params, onComplete: showResponse, onLoading: showProgress});
	
	getAjaxClicks(chnnl+"/rate");
}

var clipLeft = 0;
var clipHeight = 92;
var clipRight = 628;
var topper2 = 0;
var lyrheight2 = 0;
var time2,amount2,theTime2,theHeight2,DHTML2;

function getObj(name)
{
	if (document.getElementById){
		this.obj = document.getElementById(name);
		this.style = document.getElementById(name).style;
	}else if (document.all){
		this.obj = document.all[name];
		this.style = document.all[name].style;
	}else if (document.layers){
		this.obj = document.layers[name];
		this.style = document.layers[name];
	}
}

function initscroll2()
{
	DHTML2 = (document.getElementById || document.all || document.layers)
	if (!DHTML2) return;
	var x = new getObj('scroll-list2');
	if (document.layers)
	{
		lyrheight2 = x.style.clip.right;
		lyrheight2 += 20;
		x.style.clip.top = 0;
		x.style.clip.left = clipLeft;
		x.style.clip.right = clipRight;
		x.style.clip.bottom = clipHeight;
	}
	else if (document.getElementById || document.all)
	{
		lyrheight2 = x.obj.offsetWidth;
		x.style.clip = 'rect(0,'+clipRight+'px,'+clipHeight+'px,'+clipLeft+'px)';
	}
}

function scrollayer2(layername,amt,tim)
{
	if (!DHTML2) return;
	thelayer = new getObj(layername);
	if (!thelayer) return;
	amount2 = amt;
	theTime2 = tim;
	realscroll2();
}

function realscroll2()
{
	if (!DHTML2) return;
	clipLeft += amount2;
	clipRight += amount2;
	topper2 -= amount2;
	if (clipLeft < 0 || clipRight > lyrheight2)
	{
		clipLeft -= amount2;
		clipRight -= amount2;
		topper2 += amount2;
		return;
	}
	if (document.getElementById || document.all)
	{
		clipstring = 'rect(0,'+clipRight+'px,'+clipHeight+'px,'+clipLeft+'px)';
		thelayer.style.clip = clipstring;
		thelayer.style.left = topper2 + 'px';
	}
	else if (document.layers)
	{
		thelayer.style.clip.left = clipLeft;
		thelayer.style.clip.right = clipRight;
		thelayer.style.left = topper2;
	}
	time2 = setTimeout('realscroll2()',theTime2);
}

function stopScroll()
{
	if (time2) clearTimeout(time2);
	if (time3) clearTimeout(time3);
}

var clipLeft3 = 0;
var clipHeight3 = 50;
var clipRight3 = 458;
var topper3 = 0;
var lyrheight3 = 0;
var time3,amount3,theTime3,theHeight3,DHTML3;

function initscroll3()
{
	DHTML3 = (document.getElementById || document.all || document.layers)
	if (!DHTML3) return;
	var x = new getObj('scroll-list');
	if (document.layers)
	{
		lyrheight3 = x.style.clip.right;
		lyrheight3 += 20;
		x.style.clip.top = 0;
		x.style.clip.left = clipLeft3;
		x.style.clip.right = clipRight3;
		x.style.clip.bottom = clipHeight3;
	}
	else if (document.getElementById || document.all)
	{
		lyrheight3 = x.obj.offsetWidth;
		x.style.clip = 'rect(0,'+clipRight3+'px,'+clipHeight3+'px,'+clipLeft3+'px)';
	}
}

function scrollayer3(layername,amt,tim)
{
	if (!DHTML3) return;
	thelayer = new getObj(layername);
	if (!thelayer) return;
	amount3 = amt;
	theTime3 = tim;
	realscroll3();
}

function realscroll3()
{
	if (!DHTML3) return;
	clipLeft3 += amount3;
	clipRight3 += amount3;
	topper3 -= amount3;
	if (clipLeft3 < 0 || clipRight3 > lyrheight3)
	{
		clipLeft3 -= amount3;
		clipRight3 -= amount3;
		topper3 += amount3;
		return;
	}
	if (document.getElementById || document.all)
	{
		clipstring = 'rect(0,'+clipRight3+'px,'+clipHeight3+'px,'+clipLeft3+'px)';
		thelayer.style.clip = clipstring;
		thelayer.style.left = topper3 + 'px';
	}
	else if (document.layers)
	{
		thelayer.style.clip.left = clipLeft3;
		thelayer.style.clip.right = clipRight3;
		thelayer.style.left = topper3;
	}
	time3 = setTimeout('realscroll3()',theTime3);
}

/* cosmo faved links */
function openWin(urlStr,w,h){
	var dmxH = h;
	var dmxW = w;
	
	win = window.open(urlStr, "sendToAFriend" , config='height='+dmxH+'px,width='+dmxW+'px,' + ' scrollbars=1,directories=no, menubar=no, resizable=no, status=no,toolbar=no, directories=no');
	
	if (win.open){
		if (window.focus) {win.focus()}
		win.resizeTo(dmxW,dmxH);
	}
} 

function openLink(id){
	var dmxH = 700;
	var dmxW = 844;
	
	rule_window = window.open(publicdomainobj+"frameset.php?id="+id, "details" , config='height='+dmxH+'px,width='+dmxW+'px,' + ' scrollbars=1,directories=no, menubar=no, resizable=no, status=no,toolbar=no, directories=no');
	
	if (rule_window.open){
		if (window.focus) {rule_window.focus()}
		rule_window.resizeTo(dmxW,dmxH);
	}
}

/* report abuse */
function toggleReport(uname){
	if($('abuser').innerHTML == "") Effect.toggle('reportForm', 'slide', { delay: 0.5 });
	
	$('abuser').innerHTML = uname;
	$('reportAbuser').value = uname;
}

function reportAbuse(){
	var showResponse = function (originalRequest) {
		$('abuser').innerHTML = ""; 
		$('reportFormMess').innerHTML = "";
		$('reportForm').reset();
		$('reportFormBt').disabled = false;
		Effect.toggle('reportForm', 'slide', { delay: 0.5 });
	};
	var showProgress = function () { $('reportFormMess').innerHTML = 'submitting...'; $('reportFormBt').disabled = true; }
	var err = 0;
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	
	if($('reportName')){
		if(trim($('reportName').value) == ''){ Element.addClassName($('reportName').parentNode,'formError'); err++; }
		else Element.removeClassName($('reportName').parentNode,'formError');
	}
	
	if(filter.test($F('reportFrom'))){ Element.removeClassName($('reportFrom').parentNode,'formError')}
	else{alert("The email address you entered is invalid. \n\nPlease enter a valid email address."); err++; Element.addClassName($('reportFrom').parentNode,'formError')}
	
	if (err != 0){
		alert('You have not filled out all the required fields correctly. \n\n Please submit the required information.');
	}else{
		parameter = Form.serialize('reportForm');
		
		var url = publicdomainobj + "reportAbuse.xml.php";
		var myAjax = new Ajax.Request( url, { method: 'post', parameters: parameter, onComplete: showResponse, onLoading: showProgress });
		
		getAjaxClicks(chnnl+"/report-abuse");
	}
}

/*article forum feeds*/
function loadArticleForumPeek(fid, isBoard){
	var showResponse = function (originalRequest) {
		$('fxaDiv').innerHTML = originalRequest.responseText;
	};
	var showProgress = function () { $('fxaDiv').innerHTML = 'loading...'; }
	var parameter = "fid="+ fid +"&is_board="+ isBoard;
	var url = publicdomainobj + "articleForumPeek.xml.php";
	var myAjax = new Ajax.Request( url, { method: 'post', parameters: parameter, onComplete: showResponse, onLoading: showProgress });
}

/*home peek & feeds*/
function loadBlogPeek(){
	var showResponse = function (originalRequest) {
		$('loadBlogPeekHere2').innerHTML = originalRequest.responseText;
	};
	var showProgress = function () { $('loadBlogPeekHere2').innerHTML = 'loading...'; }
	
	var url = publicdomainobj + "blogPeek.xml.php";
	var myAjax = new Ajax.Request( url, { onComplete: showResponse, onLoading: showProgress });
}

function loadForumPeek(){
	var showResponse = function (originalRequest) {
		$('loadForumPeekHere2').innerHTML = originalRequest.responseText;
	};
	var showProgress = function () { $('loadForumPeekHere2').innerHTML = 'loading...'; }
	
	var url = publicdomainobj + "forumPeek.xml.php";
	var myAjax = new Ajax.Request( url, { onComplete: showResponse, onLoading: showProgress });
}

function generateFeed(feed, num){
	var showResponse = function (originalRequest) {
		$('sFeed'+ num).innerHTML = originalRequest.responseText;
	};
	var showProgress = function () { $('sFeed'+ num).innerHTML = 'loading...'; }
	var parameter = "feed="+ feed;
	var url = publicdomainobj + "summit-feeds/feed.xml.php";
	var myAjax = new Ajax.Request( url, { method: 'post', parameters: parameter, onComplete: showResponse, onLoading: showProgress });
	
	getAjaxClicks(chnnl+"/loadfeed/"+ feed);
}

/*cosmo controversy (polls)*/
function pollVote(){
	var showResponse = function (originalRequest) {
		if(originalRequest.responseText != ""){
			$('cosmoControversyForm').innerHTML = originalRequest.responseText;
		}else{
			$('cosmoControversyForm').innerHTML = "<p class='lbarDivP'>An error has occurred! Please try again.</p>";
		}
	};
	var showProgress = function () { $('ccFormMess').innerHTML = 'submitting...'; }
	
	parameter = Form.serialize('cosmoControversyForm');
	
	var url = publicdomainobj + "controversyVote.xml.php";
	var myAjax = new Ajax.Request( url, { method: 'post', parameters: parameter, onComplete: showResponse, onLoading: showProgress });
	
	getAjaxClicks(chnnl+"/cosmo-controversy/vote");
}

function pollVote2(){
	var showResponse = function (originalRequest) {
		if(originalRequest.responseText != ""){
			$('cosmoControversyForm2').innerHTML = originalRequest.responseText;
		}else{
			$('cosmoControversyForm2').innerHTML = "<p class='lbarDivP'>An error has occurred! Please try again.</p>";
		}
	};
	var showProgress = function () { $('ccFormMess2').innerHTML = 'submitting...'; }
	
	parameter = Form.serialize('cosmoControversyForm2');
	
	var url = publicdomainobj + "controversyVote.xml.php";
	var myAjax = new Ajax.Request( url, { method: 'post', parameters: parameter, onComplete: showResponse, onLoading: showProgress });
	
	getAjaxClicks(chnnl+"/vote");
}

/*quizzes*/
function flipQuestion(id, type){
	var total = $F('totalQ');
	
	if(type == "prev"){
		$('question'+(id + 1)).toggle();
	}else{
		$('question'+(id - 1)).toggle();
	}
	
	$('question'+id).toggle();
	
	if((id - 1) > 0){
		$('aPages').innerHTML = '<a href="" onclick="flipQuestion('+ (id - 1) +',\'prev\'); return false;"><strong>Previous</strong></a>';
	}else{
		$('aPages').innerHTML = '<a><strong>Previous</strong></a>';
	}
	
	$('aPages').innerHTML += ' | '+ id +' of '+ total +' | ';
	
	if((id + 1) <= total){
		$('aPages').innerHTML += '<a href="" onclick="flipQuestion('+ (id + 1) +',\'next\'); return false;"><strong>Next</strong></a>';
	}else{
		$('aPages').innerHTML += '<a><strong>Next</strong></a>';
	}
	
	getAjaxClicks(chnnl +"/"+ type +"page");
}

function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

function submitQuiz(){
	var showResponse = function (originalRequest) {
		if(originalRequest.responseText == "error1"){
			$('qMess').innerHTML = "Please answer all the questions first.";
		}else if(originalRequest.responseText != ""){
			$('aQuiz').innerHTML = originalRequest.responseText;
		}else{
			$('aQuiz').innerHTML = "<p>An error has occurred! Please try again.</p>";
		}
		
		$('aPages').innerHTML = "";
	};
	var showProgress = function () { $('qMess').innerHTML = 'submitting...'; $('quizSubmit').disabled = true; }
	var total = $F('totalQ');
	var qErr = 0;
	
	for(i = 1; i <= total; i++){
		gcv = getCheckedValue($('quizForm').elements['q'+ i]);
		
		if(gcv == ""){
			qErr++;
		}
	}
	
	if (qErr != 0){
		alert('You have not answered all the questions yet. \n\nPlease check back and complete the quiz.');
	}else{
		parameter = Form.serialize('quizForm');
		
		var url = publicdomainobj + "quizzes/submit.xml.php";
		var myAjax = new Ajax.Request( url, { method: 'post', parameters: parameter, onComplete: showResponse, onLoading: showProgress });
		
		getAjaxClicks(chnnl+"/submit");
	}
}

/*search*/
function search(){
	var key = $F('searchKey');
	
	key1 = key.replace(/ +/g, '+');
  	location.href = publicdomain +'tag/search/'+key1;
	
	return true;
}

/*post actions box*/
function emailPost(){
	var showResponse = function (originalRequest) {
		$('emailFormMess').innerHTML = ""; 
		$('emailTo').value = "";
		$('emailText').value = "";
		$('emailName').value = "";
		$('emailFrom').value = "";
		$('emailFormBt').disabled = false;
		Effect.toggle('emailForm', 'slide', { delay: 0.5 });
	};
	var showProgress = function () { $('emailFormMess').innerHTML = 'emailing...'; $('emailFormBt').disabled = true; }
	var err = 0;
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i

	if(filter.test($F('emailTo'))){ Element.removeClassName($('emailTo').parentNode,'formError')}
	else{alert("Your friend's email address you entered is invalid. \n\nPlease enter a valid email address."); err++; Element.addClassName($('emailTo').parentNode,'formError')}
	
	if(trim($('emailName').value) == ''){ Element.addClassName($('emailName').parentNode,'formError'); err++; }
	else Element.removeClassName($('emailName').parentNode,'formError');
	
	if(filter.test($F('emailFrom'))){ Element.removeClassName($('emailFrom').parentNode,'formError')}
	else{alert("Your email address you entered is invalid. \n\nPlease enter a valid email address."); err++; Element.addClassName($('emailFrom').parentNode,'formError')}
	
	if (err != 0){
		alert('You have not filled out all the required fields correctly. \n\n Please submit the required information.');
	}else{
		parameter = Form.serialize('emailForm');
		
		var url = publicdomainobj + "emailPost.xml.php";
		var myAjax = new Ajax.Request( url, { method: 'post', parameters: parameter, onComplete: showResponse, onLoading: showProgress });
		
		getAjaxClicks(chnnl+"/email");
	}
}

function comment(type, id){
	var showResponse = function (originalRequest) { 
		$('postedComments').innerHTML = originalRequest.responseText + $('postedComments').innerHTML; 
		$('commentFormMess').innerHTML = "";
		$('commentFormBt').disabled = false;
		$('commentForm').reset(); 
		$('commentForm').style.display = "none"; 
	};
	var showProgress = function () { $('commentFormMess').innerHTML = 'submitting...'; $('commentFormBt').disabled = true; }

	if(trim($F('commentText')) == ''){
		Element.addClassName($('commentText').parentNode,'formError');
		alert('Please enter your comment.');
	}else if($('commentName') && trim($F('commentName')) == ''){
		Element.addClassName($('commentName').parentNode,'formError');
		alert('Please enter your name.');
	}else{
		Element.removeClassName($('commentText').parentNode,'formError');
		params = Form.serialize('commentForm');
		params += "&id="+ id +"&type="+ type;
		url = publicdomainobj + "comment.xml.php";
		var myAjax = new Ajax.Request( url,{method: 'post', parameters: params, onComplete: showResponse, onLoading: showProgress});
		
		getAjaxClicks(chnnl+"/comment");
	}
}

/*favorites*/
function faveMe(id, type, action){
	var showResponse = function (originalRequest) { $('aa5').innerHTML = originalRequest.responseText; };
	var showProgress = function () { $('aa5').innerHTML = 'processing...'; }

	var params = "id="+ id +"&type="+ type +"&action="+ action;
	url = publicdomainobj + "faveMe.xml.php";
	var myAjax = new Ajax.Request( url,{method: 'post', parameters: params, onComplete: showResponse, onLoading: showProgress});
	
	getAjaxClicks(chnnl+"/"+(action == "fave"?"faved":"unfaved"));
}

/*e-newsletter*/
function phplistSubscribeEmail(type){
	var inp = 'nEmail';
	var inp2 = 'eSubMess';
	
	if(type == 'unsubscribe'){ inp = 'nEmail2'; inp2 = 'eSubMess2'; }
	
	var showResponse = function (originalRequest) { $(inp2).innerHTML = originalRequest.responseText; };
	var showProgress = function () { $(inp2).innerHTML = 'processing...'; }
	
	url = publicdomainobj + "e-newsletter/email.xml.php";
	
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i

	if(filter.test($F(inp))){ 
		var params = "nEmail="+ $F(inp) +"&type="+ type;
		var myAjax = new Ajax.Request( url,{method: 'post', parameters: params, onComplete: showResponse, onLoading: showProgress});
		
		getAjaxClicks(chnnl+"/e-newsletters/"+ type);
	}else{ alert("Please enter a valid email address."); }
}

/*article gallery*/
function loadGalleryImage(giid, gid){
	var showResponse = function (originalRequest) {
		marker = originalRequest.responseText.search('###');
		
		$('aContent2').innerHTML = originalRequest.responseText.substr(0, marker);
		$('gaImgTxt').innerHTML = originalRequest.responseText.substr(marker + 3);
	};
	
	var showProgress = function () { 
		$('gaImg').innerHTML = '<p>loading...</p>'; 
	};
	
	parameter = "giid="+giid+"&gid="+gid;
	var url = publicdomainobj + "articles/loadImage.xml.php";
	var myAjax = new Ajax.Request( url,{method: 'post', parameters: parameter, onLoading: showProgress, onComplete: showResponse});
	
	getAjaxClicks(chnnl+"/load-images");
}

function flipPageIG(gid, page){
	var showResponse = function (originalRequest) {
		$('imageGalleryImages').innerHTML = originalRequest.responseText;
	};
	
	var showProgress = function () { 
		$('imageGalleryImages2').innerHTML = '<li>loading...</li>'; 
	};
	
	parameter = "gid="+gid+"&page="+page+"&total="+$('totalPages').value;
	var url = publicdomainobj + "articles/flipPage.xml.php";
	var myAjax = new Ajax.Request( url,{method: 'post', parameters: parameter, onLoading: showProgress, onComplete: showResponse});
	
	getAjaxClicks(chnnl+"/flip-gallery-page");
}

/*home mrmp*/
function flipMrmpPage(page, type){
	type2 = (type == 2?"popular":"recent");
	
	var showResponse = function (originalRequest) {
		$('tabContent').innerHTML = originalRequest.responseText;
	};
	
	var showProgress = function () { 
		$('tabContent').innerHTML = '<p align="center">loading...</p>'; 
	};
	
	parameter = "type="+type2 +"&page="+ page;
	var url = publicdomainobj + "mrmp.xml.php";
	var myAjax = new Ajax.Request( url,{method: 'post', parameters: parameter, onLoading: showProgress, onComplete: showResponse});
	
	getAjaxClicks(chnnl+"/"+ type2 +"/"+ page);
}

function articleTab(type){
	if(type == "recent"){
		$('mRecent').parentNode.id = "selected";
		$('mPopular').parentNode.id = "";
	}else{
		$('mRecent').parentNode.id = "";
		$('mPopular').parentNode.id = "selected";
	}
	
	var showResponse = function (originalRequest) {
		$('tabContent').innerHTML = originalRequest.responseText;
	};
	
	var showProgress = function () { 
		$('tabContent').innerHTML = '<p align="center">loading...</p>'; 
	};
	
	parameter = "type="+type;
	var url = publicdomainobj + "mrmp.xml.php";
	var myAjax = new Ajax.Request( url,{method: 'post', parameters: parameter, onLoading: showProgress, onComplete: showResponse});
	
	getAjaxClicks(chnnl+"/"+ type);
}

/*accordion*/
var Accordion = Class.create();

Accordion.prototype = {
	initialize: function(id, tag, name) {
		this.id = id;
		this.headerTag = tag.toUpperCase();
		this.instance = name;
		this.headingClassName = (arguments[3] || "panel");
		this.contentClassName = (arguments[3] || "panelBody");
		this.panels = new Array();

		var tags = $(id).getElementsByTagName('*');		
		for ( var i = 0; i < tags.length; i++) {
			switch(tags.item(i).tagName) {
				case this.headerTag:
					tags.item(i).onclick = this._returnEvalCode(this.instance);
					break;

				default:
					if (Element.hasClassName(tags.item(i), this.headingClassName)) {
						tags[i]._index = this._returnIndex(this.panels.length);
						this.panels[this.panels.length] = tags.item(i);
						//the line above is same meaning as "this.panels.push(tags.item(i));"
						if (this.panels.length == 2) {
							tags.item(i).id = "visible";	
							var h3s = tags.item(i).getElementsByTagName('h4');
							for( var i=0; i<h3s.length; i++) Element.addClassName(h3s.item(i),'acc-contract'); 
						}
					}
					if (Element.hasClassName(tags.item(i), this.contentClassName)) {
						tags.item(i).style.display = "none";
					}
					break;

			}
		}
		this.length = this.panels.length;
		this.show(0, true);
	},

	show: function(index, force) {
		if ( (index >= this.length) || (index < 0) ) {
			return;
		}

		if ( $('visible') == this.panels[index] ){
			if (force) {
				for(var i = 0; i < this.length; i++) {
					if(this._body(this.panels[i]).style.display != "none") { new Effect.SlideUp(this._body(this.panels[i])); }
				}
				new Effect.SlideDown(this._body(this.panels[index]));
				return;
			}
			return;
		}

		new Effect.Parallel(
			[
				new Effect.SlideUp( this._body($('visible')) ),
				new Effect.SlideDown( this._body(this.panels[index]) )
			], {
				duration: 0.2
			}
		);
		
		var h3s_a = $('visible').getElementsByTagName('h4');
		for( var i=0; i<h3s_a.length; i++){ Element.removeClassName(h3s_a.item(i),'acc-contract'); }
		$('visible').id = "";
		this.panels[index].id = "visible";
		var h3s_b = this.panels[index].getElementsByTagName('h4');
		for( var i=0; i<h3s_b.length; i++){ Element.addClassName(h3s_b.item(i),'acc-contract'); }
		return;
	},

	_body: function(e) {
		var tags = e.getElementsByTagName('*');
		for( var i=0; i<tags.length; i++) {
			if (Element.hasClassName(tags.item(i), this.contentClassName)) { return tags.item(i); }
		}
	},

	_returnIndex: function(i) {
		return function() { return i; }
	},

	_returnEvalCode: function(s) {
		return function(){ eval(s + ".show(" + this.parentNode._index() + ");"); }
	}
};

function highlight(id, order){
	if(order == 1){
		$('rightRight').getElementsByTagName("h4")[1].id = "rrLink1";
		$('rightRight').getElementsByTagName("h4")[2].id = "rrLink2";
	}else if(order == 2){
		$('rightRight').getElementsByTagName("h4")[0].id = "rrLink1";
		$('rightRight').getElementsByTagName("h4")[2].id = "rrLink2";
	}else{
		$('rightRight').getElementsByTagName("h4")[0].id = "rrLink1";
		$('rightRight').getElementsByTagName("h4")[1].id = "rrLink2";
	}
}

function generateRandomArt(channel){
	var showResponse = function (originalRequest) {
		$('randomArticles').innerHTML = originalRequest.responseText;
	};
	
	var showProgress = function () { 
		$('randomArticles').innerHTML = '<p align="center">loading...</p>'; 
	};
	
	parameter = "channel="+channel;
	var url = publicdomainobj + "rightBoxes/randomArticles.xml.php";
	var myAjax = new Ajax.Request( url,{method: 'post', parameters: parameter, onLoading: showProgress, onComplete: showResponse});
	
	getAjaxClicks(chnnl+"/more-in-"+ channel);
}

/*be a member*/
function registerMember() {
	inputs = Form.getElements('regMember');
	
	var err = 0;
	var j = 0;
	
	for(var i = 1; i < inputs.length; i++){
		if((Element.hasClassName(inputs[i],'required'))&&(trim(inputs[i].value) == '')){
			err++;
			Element.addClassName(inputs[i].parentNode,'formError');
		}else{
			Element.removeClassName(inputs[i].parentNode,'formError');
		}
		j++;
	}
	
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i

	if(filter.test($F('email'))){ Element.removeClassName($('email').parentNode,'formError')}
	else{alert('The email address you entered is invalid. \n\n Please enter a valid email address.'); err++; Element.addClassName($('email').parentNode,'formError')}
	
	if(($F('country') == 'PH')&&($F('region')=='')){ Element.addClassName($('region').parentNode,'formError'); err++; }
	else if(($F('country') == 'US')&&($F('state')=='')){ Element.addClassName($('state').parentNode,'formError'); err++; }
	else if(($F('country') != 'PH')&&($F('country') != 'US')&&($F('specRegion')=='')){ Element.addClassName($('specRegion').parentNode,'formError'); err++; }
	else { Element.removeClassName($('specRegion').parentNode,'formError'); }
	
	if(($('m').checked == false)&&($('f').checked == false)){ Element.addClassName($('genderBox'),'formError'); err++; }
	else{ Element.removeClassName($('genderBox'),'formError'); }
	
	if(($('unameErr').value == '1')||(trim($('uname').value) == '')){ Element.addClassName($('uname').parentNode,'formError'); err++; }
	else Element.removeClassName($('uname').parentNode,'formError');
	
	if(($('emailErr').value == '1')||(trim($('email').value) == '')){ Element.addClassName($('email').parentNode,'formError'); err++;}
	else Element.removeClassName($('email').parentNode,'formError');
	
	if (err != 0){
		alert('You have not filled out all the required fields correctly. \n\n Please submit the required information.');
	}else{
		if($('agree').checked == false){ alert('Please tick the checkbox if you agree with our posting policy.');}
		else if($('agree2').checked == false){ alert('Please tick the checkbox if you agree with the terms and conditions \n\n of the member registration.');}
		else{
			return true;
		}
	}
	
	return false;
}

function updateMember() {
	var showResponse = function (originalRequest) { 
		$('memberRegistration').innerHTML = originalRequest.responseText; 
		
		Event.observe('country', 'change', selectRegion, false);
		selectRegion();
		Event.observe('updateMember', 'click', registerMember, false);
	};
	
	var showProgress = function () { $('memberRegistration').innerHTML = 'Member profile update in progress...'; }
	
	inputs = Form.getElements( 'updateProfile' );
	
	var err = 0;
	var j = 0;
	
	for(var i = 1; i < inputs.length; i++){
		if((Element.hasClassName(inputs[i],'required'))&&(trim(inputs[i].value) == '')){
			err++;
			
			Element.addClassName(inputs[i].parentNode,'formError');
		}else{
			Element.removeClassName(inputs[i].parentNode,'formError');
		}
		
		j++;
	}
	
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i

	if(filter.test($F('email'))){ Element.removeClassName($('email').parentNode,'formError')}
	else{alert('The email address you entered is invalid. \n\n Please enter a valid email address.'); err++; Element.addClassName($('email').parentNode,'formError')}
	
	if(($F('country') == 'PH')&&($F('region')=='')){ Element.addClassName($('region').parentNode,'formError'); err++; }
	else if(($F('country') == 'US')&&($F('state')=='')){ Element.addClassName($('state').parentNode,'formError'); err++; }
	else if(($F('country') != 'PH')&&($F('country') != 'US')&&($F('specRegion')=='')){ Element.addClassName($('specRegion').parentNode,'formError'); err++; }
	else { Element.removeClassName($('specRegion').parentNode,'formError'); }
	
	if(($('m').checked == false)&&($('f').checked == false)){	Element.addClassName($('genderBox'),'formError'); err++; }
	else{ Element.removeClassName($('genderBox'),'formError'); }
	
	if(($('emailErr').value == '1')||(trim($('email').value) == '')){ Element.addClassName($('email').parentNode,'formError'); err++;}
	else Element.removeClassName($('email').parentNode,'formError');
	
	if (err != 0){
		alert('You have not filled out all the required fields correctly. \n\n Please submit the required information.');
	}else{
		parameter = Form.serialize( 'updateProfile' );	
		
		var url = publicdomainobj + "beamember/profile.xml.php";
		var myAjax = new Ajax.Request( url, { method: 'post', parameters: parameter, onComplete: showResponse, onLoading: showProgress });		
	}
	
	getAjaxClicks(chnnl+"/updateprofile");
}

function checkUniqueUsername() {
	var showResponse = function (originalRequest) { 
		if(trim(originalRequest.responseText) != 0){ 
			$('unameErr').value = 1; Element.addClassName($('uname').parentNode,'formError'); 
			$('unameerror').innerHTML = '&nbsp;The username you entered already exists in our database, please enter a different username.';
		}else{ Element.removeClassName($('uname').parentNode,'formError'); $('unameerror').innerHTML = ''; $('unameErr').value = 0;}
	};
	
	var showProgress = function () { $('unameerror').innerHTML = '&nbsp;verifying username...'; }
	
	un = $F('uname');
	uId = (($F('memberId') != 0)||($F('memberId') != '')) ? $F('memberId') : '';
	parameter = "un="+un+"&uId="+uId;
	
	var url = publicdomainobj + "beamember/checkUniqueUsername.xml.php";
	var myAjax = new Ajax.Request( url,	{method: 'get', parameters: parameter, onComplete: showResponse, onLoading: showProgress});
}

function checkUniqueEmail() {
	var showResponse = function (originalRequest) { 
		if(trim(originalRequest.responseText) != 0){ 
			$('emailErr').value = 1; Element.addClassName($('email').parentNode,'formError'); 
			$('emailerror').innerHTML = '&nbsp;The email you entered already exists in our database. Please enter a different email address.';
		}else{ Element.removeClassName($('email').parentNode,'formError'); $('emailerror').innerHTML = ''; $('emailErr').value = 0;}
	};
	
	var showProgress = function () { $('emailerror').innerHTML = '&nbsp;verifying email address...'; }
	
	email = $F('email');
	uId = (($F('memberId') != 0)||($F('memberId') != '')) ? $F('memberId') : '';
	parameter = "email="+email+"&uId="+uId;
	
	var url = publicdomainobj + "beamember/checkUniqueEmail.xml.php";
	var myAjax = new Ajax.Request( url,	{method: 'get', parameters: parameter, onComplete: showResponse, onLoading: showProgress});
}

function verifypassword(){
	if(($F('pword1').length > 5)&&($F('pword2') != $F('pword1'))) Element.show('pwderror'); 
	else Element.hide('pwderror');
}

function confirmCorrectEmail(){
	if(($F('email').length > 5)&&($F('email') != $F('confirmemail'))){ $('emailErr').value = 1; Element.show('confirmemailerror'); } 
	else { $('emailErr').value = 0; Element.hide('confirmemailerror'); }
}

function selectRegion(){
	if($("country")){
		if($F('country') == 'US') { Element.hide('region'); Element.hide('specRegion'); Element.show('state'); Field.clear('specRegion'); }
		else if($F('country') == 'PH') { Element.hide('state'); Element.hide('specRegion'); Element.show('region'); Field.clear('specRegion'); }
		else { Element.hide('region'); Element.hide('state'); Element.show('specRegion'); }
	}
}

function init(){ 
	// quit if this function has already been called
	if (arguments.callee.done) return;


	// flag this function so we don't do the same thing twice
	arguments.callee.done = true;

	// kill the timer
	if (_timer) clearInterval(_timer);
	
	sfHover();
	
	if($("country")) Event.observe('country', 'change', selectRegion, false);
	selectRegion();
	if($("updateMember")) Event.observe('updateMember', 'click', updateMember, false);
	if($("uploadfoto")) Event.observe('uploadfoto', 'change', testFileType, false);
	if($("scroll-list2")) initscroll2();
}

/* for Mozilla/Opera9 */
if (document.addEventListener) {
	document.addEventListener("DOMContentLoaded", init, false);
}

/* for Internet Explorer */
/*@cc_on @*/
/*@if (@_win32)
	document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
	var script = document.getElementById("__ie_onload");
	script.onreadystatechange = function() {
		if (this.readyState == "complete") {
			init(); // call the onload handler
		}
	};
/*@end @*/

/* for Safari */
if (/WebKit/i.test(navigator.userAgent)) { // sniff
	var _timer = setInterval(function() {
		if (/loaded|complete/.test(document.readyState)) {
			init(); // call the onload handler
		}
	}, 10);
}

/* for other browsers */
window.onload = init;