// popUpWin

function popUpWin(url,name,w,h) {

	var x=(screen.width/2-w/2);
	var y=(screen.height/2-h/2);

	window.open(url,name,"toolbar=no,location=no,directories=no,status=no,menuvar=no,resizable=no,scrollbars=yes,width="+w+",height="+h+",screenX="+x+",screenY="+y+",left="+x+",top="+y);

};


// doSubmit FOR RATNGSBOX!!!
function doSubmit() {

	for(i=0;i<document.rateForm.ratings_rate.length;i++) {
		if(document.rateForm.ratings_rate[i].checked) {
			radiovalue=(document.rateForm.ratings_rate[i].value);
		}
	}

	if(radiovalue<=2) {
		popUpWin('?template=popup&ratings_genid='+document.rateForm.genId.value+'&page='+document.rateForm.moduleId.value+'&id='+document.rateForm.articleId.value+'&ratings_rate='+radiovalue,'ratingspopup',600,480);
	}

	return true;

};

//GLOBAL fields var for error validation
var fields = '';

//for AE form validation
function validateFields(form) {
	
	if (form.question_header.value == '') {
		fields = fields+'* otsikko puuttuu<br />\n ';
	} 
	if (form.question_txt.value == '') {
		fields = fields+'* kysymysteksti puuttuu<br />\n ';
	}
	
	var selectedType;
	//if (form.email_type.typeof != 'undefined') {
		for (i=0;i < form.email_type.length;i++){
			if (form.email_type[i].checked==true){
				selectedType = i;
				break; //exist for loop, as target acquired.
			}
		}
	//} else {
	//	selectedType = 1;
	//}
	
	
	if (selectedType != 0) {
		if (form.email.value == '') {
			fields = fields+'* email puuttuu<br />\n ';
		}
		if (form.email_confirm.value == '') {
			fields = fields+'* email-varmiste puuttuu<br />\n ';
		}
		if (form.email.value != form.email_confirm.value) {
			fields = fields+'* email ja email-varmiste eivät vastaa toisiaan<br />\n ';
		}	
	
		if (form.email.value != '') {
			/* TR00 EMAIL VALIDATION */
			if (window.XMLHttpRequest) {
				req = new XMLHttpRequest(); //tr00 browsers
			}
			else {
				if (window.ActiveXObject) {
					req = new ActiveXObject("Microsoft.XMLHTTP"); //for the false one
				}
			}
		
			if (req) {
				//req.onreadystatechange = requestHandler;			
				/*req.onreadystatechange = function () {
			  	if (req.readyState == 4) {
			      // OK
			      if (req.status == 200) {
			      	 statusStr = req.responseText;
			      	 //root = req.responseXML.documentElement;
			      	 //status = root.getElementsByTagName('email')[1].firstChild.nodeValue;;	
			      	 if (statusStr != '0') {
			      	 		document.getElementById("ae_alertbox").innerHTML = fields + '* email on virheellinen<br />\n ';
			      	 }
			      } else {
			         // alert("There was a problem retrieving the XML data:\n"+req.statusText);
			      }
			  	}
				}*/
	
				//SYNCHRONOUS HACK :(
				//urli = "http://10.10.10.243/ssl/validate.php?email="+form.email.value;
				urli="validate.php?email="+form.email.value;
				req.open("GET", urli, false);
				req.send(null);
		  	
		  	if (req.readyState == 4) {
		      // OK
		      if (req.status == 200) {
		      	 statusStr = req.responseText;
		      	 //root = req.responseXML.documentElement;
		      	 //status = root.getElementsByTagName('email')[1].firstChild.nodeValue;;	
		      	 if (statusStr != '0') {
		      	 		fields = fields + '* email on virheellinen<br />\n ';
		      	 }
		      } else {
		         // alert("There was a problem retrieving the XML data:\n"+req.statusText);
		      }
		  	}	
			}
		}
	}
	if (fields == '') {
		return true;
	} else {	
		//alert("Sinun pitää syöttää seuraavat kentät:\n "+fields);
		document.getElementById("ae_alertbox").innerHTML = "<span style=\"font-weight: bold\">"+fields+"</span><br />";
		document.getElementById("ae_alertbox").style.display = 'block';		
		fields = '';
		return false;
	}
}

/**
 * Inits ajax, duh?
 * @return XMLHttpRequest object or false
 */
function ajaxinit () {
	if (window.XMLHttpRequest) // if Mozilla, Safari etc
		return (new XMLHttpRequest());
	else if (window.ActiveXObject){ // if IE
		try {
			return ( new ActiveXObject("Msxml2.XMLHTTP"));
		} 
		catch (e){
			try{
				return ( new ActiveXObject("Microsoft.XMLHTTP"));
			}
			catch (e){return false;}
		}
	}
	else {
		return false;
	}
}

function prepareInfoFetch(el) {
	window.location = '/?page='+el.options[el.selectedIndex].value;
	return false;
}

/** 
 * @param {String} containerid
 * @param {Int} mode
 * @param {String} titlecontainerid
 * @param {String} title
 * @return (Boolean)
 * @todo graceful degrading?	
 */
function switchMode (containerid, mode, titlecontainerid, title) {
	var siteUrl = '';
	cont = document.getElementById(containerid);
	var page_request = ajaxinit();
	if (!page_request)
		return false;	
	cont.options.length = 0; //clear;
	cont.options[0] = new Option('ladataan...','0');
	cont.disabled = 'disabled';
	cont.style.bgColor = 'white';
	
	document.getElementById(titlecontainerid).innerHTML = title;
	
	//selectedValue = cont.options[cont.selectedIndex].value;
	//alert(siteUrl+'serveAjax.php?mode='+mode);
	
	page_request.onreadystatechange=function(){
		loadselect(page_request, containerid);
		cont.disabled = '';
	}
	
	page_request.open('GET', siteUrl+'serveAjax.php?mode='+mode, true);
	page_request.send(null);
	return true;
}

/**
 * @param {XMLHttpRequest} page_request
 * @param {String} containerid
 */
function loadselect(page_request, containerid){
	if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)) {	

		if (window.ActiveXObject){
			var xmlDocument = new ActiveXObject("Microsoft.XMLDOM");
			xmlDocument.loadXML(page_request.responseText);
		} else {
			var xmlDocument = page_request.responseXML;
		}
		options = xmlDocument.getElementsByTagName("rootnode")[0].getElementsByTagName("opt");
		document.getElementById(containerid).options.length = 0; //clear;
		for (i=0;options.length>i;i++) {
			document.getElementById(containerid).options[i] = new Option(bruteEntityDecode(options[i].childNodes[0].nodeValue),options[i].getAttribute('value'));
		}
		
	}
}

/**
 * Slow, clumsy, so what?
 * 
 * @param {String} str
 * @return (String)
 */
function decodeXmlEntities(str){
	str = str.replace(/&#228/g, "ä" );
	/*str = replaceAll( str, "\&\#228;", "ä" );
	str = replaceAll( str, "\&\#196;", "Ä" );
	str = replaceAll( str, "\&\#246;", "ö" );
	str = replaceAll( str, "\&\#214;", "Ö" ); 
	str = replaceAll( str, "\&\#229;", "å" );
	str = replaceAll( str, "\&\#197;", "Ä" );*/
	return ( str );
}

function bruteEntityDecode(data) {
	var matches = data.match(/&#\d+;?/g);
	if (matches != null) {
		for (var i = 0; i < matches.length; i++) {
			var replacement = String.fromCharCode((matches[i]).replace(/\D/g, ""));
			data = data.replace(/&#\d+;?/, replacement);
		}
	}
	return data;
}

var loadstatustext_cool="<p style=\"font-family:verdana,arial,sans-serf;color:gray;margin-left:auto;margin-right:auto;padding:4px;\"><img src='http://images.coronaria.fi/?id=4188303' /> ladataan...</p>"
var loadstatustext="<br /><br /><p style=\"display:block;font-family:verdana,arial,sans-serf;color:#DDDDDD;text-align:center;\">lataa...</p>";

var siteUrl = 'http://'+window.location.host+'/';

function loadpage(page_request, containerid, fade){
	if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)) {
		//document.getElementById(containerid).style.visibility = 'hidden';
		document.getElementById(containerid).innerHTML=page_request.responseText;
		if (fade == 1) {
			setOpacity(document.getElementById(containerid), 0);
			//document.getElementById(containerid).style.visibility = 'visible';
			fadeIn(containerid,0,10);
		} else {
			document.getElementById(containerid).style.visibility = 'visible';
		}
	}
}

function orderNewsletter(email, radioSet) {
	//active the graphics....
	for (i=0;i<radioSet.length;i++){
	if (radioSet[i].checked==true)
		radioValue = radioSet[i].value;
	}

	var page_request = ajaxinit();
	if (!page_request)
		return false;	
	document.getElementById('newsletter').innerHTML=loadstatustext_cool;
	
	page_request.onreadystatechange=function(){
		loadpage(page_request, 'newsletter', 0);
	}
	page_request.open('GET', siteUrl+'serveAjax.php?newsletter&action=add&email='+email+'&type='+radioValue, true);
	page_request.send(null);
}

function cancelNewsletter(email) {
	//active the graphics....

	var page_request = ajaxinit();
	if (!page_request)
		return false;	
	document.getElementById('newsletter').innerHTML=loadstatustext_cool;
	
	page_request.onreadystatechange=function(){
		loadpage(page_request, 'newsletter', 0);
	}
	page_request.open('GET', siteUrl+'serveAjax.php?newsletter&action=remove&email='+email, true);
	page_request.send(null);
}

function showNewsletterIndex() {
	//active the graphics....

	var page_request = ajaxinit();
	if (!page_request)
		return false;	
	document.getElementById('newsletter').innerHTML=loadstatustext_cool;
	
	page_request.onreadystatechange=function(){
		loadpage(page_request, 'newsletter', 0);
	}
	page_request.open('GET', siteUrl+'serveAjax.php?newsletter&action', true);
	page_request.send(null);
}