/*

COPYRIGHT 2008
--------------------------
Toute reproduction, distribution totale ou partielle de son contenu sans autorisation est illicite expose le contrevenant  des poursuites judiciaires. 

*/


function url(u)
{
	return formatUrl.replace("LINKY", u)
}

function getObj(id)
{
	if (document.all) { return document.all[id]; } 
	else {	return document.getElementById(id);	}
}

function validateJSON(jsonText)
{
	return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(jsonText.replace(/"(\\.|[^"\\])*"/g, '')));
}

function trim(myString) 
{ 
	return myString.replace(/^\s+/g,'').replace(/\s+$/g,''); 
} 

function getOffsetPosition(oObj, inTYPE)
{
	var iVal = 0;
	var sType = 'oObj.offset' + inTYPE;
	while (oObj && oObj.tagName != 'BODY')
	{
		iVal += eval(sType);
		oObj = oObj.offsetParent;
	}
	return iVal;
}

function is_numeric(num)
{
	var exp = new RegExp('^[0-9-.]+$','g');
	return exp.test(num);
}

function addslashes(string)
{
	return string.replace("'","\\'");
}

function stripslashes(string)
{
	return string.replace("\\'","'");
}

function displayBox(divName, iconName) 
{
	var box = getObj(divName);  
	if (iconName) var icon = getObj(iconName);
	
	if (box.style.display == 'block')
	{
		box.style.display = 'none';
		showSelects();
		return;
	}
	
	box.style.display = 'block';
	
	if (iconName)
	{
		box.style.top = (getOffsetPosition(icon, 'Top')+icon.height+1)+'px';
		box.style.left = getOffsetPosition(icon, 'Left') + 'px';
	}
	
	hideSelects();
}

function CDownloadUrl(method, url, func) {
	var httpObj;
	var browser = navigator.appName;
	if (browser.indexOf("Microsoft") > -1){
		httpObj = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		httpObj = new XMLHttpRequest();
	}
	httpObj.open(method, url, true);
	if (func !== null) {
		httpObj.onreadystatechange = function() {
			if(httpObj.readyState == 4){
				if (httpObj.status == 200) {
					var contenttype = httpObj.getResponseHeader('Content-Type');
					if (contenttype.indexOf('xml')>-1) {
						func(httpObj.responseXML);
					} else {
						func(httpObj.responseText);
					}
				} else {
					func('Error: '+httpObj.status);
				}
			}
		};
	}
	httpObj.send(null);   
}

function submitForm(form)
{
	var buttons = form.getElementsByTagName("button"); 
	var lenght = buttons.length;
	
	for (var i = 0; i < lenght; i++)
	{
    	buttons[i].disabled = 'disabled';
	}
}

function hideSelects()
{	
	var sel = document.getElementsByTagName('select');
	
	var l = sel.length;
	
	for (var i = 0; i < l; i++)
	{
		sel[i].style.visibility = 'hidden';
	}
	
	var parent = window.parent.document;
	
	if (parent)
	{
		var sel = parent.getElementsByTagName('select');
		
		var l = sel.length;
		
		for (var i = 0; i < l; i++)
		{
			sel[i].style.visibility = 'hidden';
		}
	}
}

function showSelects()
{
	var sel = document.getElementsByTagName('select');
	
	var l = sel.length;
	
	for (var i = 0; i < l; i++)
	{
		sel[i].style.visibility = 'visible';
	}
	
	var parent = window.parent.document;
	
	if (parent)
	{
		var sel = parent.getElementsByTagName('select');
		
		var l = sel.length;
		
		for (var i = 0; i < l; i++)
		{
			sel[i].style.visibility = 'visible';
		}
	}
}

function preLoadImage(src)
{
	i = new Image();
	i.src = src;
	return i;
}

getViewportScrollY = function()
{
	var scrollY = 0;
	var bodyheight = 0;
	if(document.documentElement && document.documentElement.scrollTop)
	{
		scrollY = document.documentElement.scrollTop;
		bodyheight = document.documentElement.scrollHeight;
	}
	else if(document.body && document.body.scrollTop)
	{
		scrollY = document.body.scrollTop;
		bodyheight = document.body.scrollHeight;
	}
	else if(window.pageYOffset)
	{
		scrollY = window.pageYOffset;
	}
	else if(window.scrollY) {
		scrollY = window.scrollY;
	}
	if(bodyheight > 0 && scrollY > bodyheight-620){
		scrollY = bodyheight-620;
	}
	else if(scrollY > 10000){
		scrollY=10000;
	}
	return scrollY;
};

getViewportWidth = function()
{
	var width = 0;
	if(document.documentElement && document.documentElement.clientWidth)
	{
		width = document.documentElement.clientWidth;
	}
	else if(document.body && document.body.clientWidth)
	{
		width = document.body.clientWidth;
	}
	else if(window.innerWidth)
	{
		width = window.innerWidth - 18;
	}
	return width;
};

function rateOver(num)
{
	if (templateIsRate) return false;
	
	getObj('rateTemplate').style.backgroundPosition = '0px -'+(180-((Math.round(num)-1)*20))+'px';
}

function rateMove(num)
{
	if (num == '0') num = -5;
	
	getObj('rateTemplate').style.backgroundPosition = '0px -'+(80-((Math.round(num)-1)*20))+'px';
}

function rateOut(num)
{
	if (templateIsRate) return false;
	
	rateMove(num);
}

function rateTemplate(templateId, note, noteDef)
{
	if (templateIsRate) return false;

	var callu = url('ajax?rateTpl=1&tplId='+templateId+'&note='+note);
	
	CDownloadUrl('get', callu, function (result)
	{
		if (result == 'ok')
		{
			rateMove(note);
			templateIsRate = true;
			alert(textVoteOk);
		}
		else
		{
			alert(textVoteError+' ('+result+')');
		}
	});
}

function templateAddFav(templateId)
{
	var callu = url('ajax?addFavTpl=1&tplId='+templateId);
	
	CDownloadUrl('get', callu, function (result)
	{
		if (result == 'add')
		{
			alert(textSuccessAddFav);
			thisTemplateInFav = 1;
			getObj('textAddFav').innerHTML = textDelOfFav;
		}
		else if (result == 'del')
		{
			thisTemplateInFav = 0;
			getObj('textAddFav').innerHTML = textAddOfFav;
		}
		else
		{
			alert(textErrorFav+' ('+result+')');
		}
	});
}