var old_styles = new Array();
var success = true;
var user_exists = true;
var users = new Array();
var emails = new Array();
var is_ie = (document.all ? true : false );
var current_screenshot = new Array();

document.write("<div id=\"loading_div\" class=\"loading_div\" style=\"display:none;position:absolute;z-index:10000000;\"></div>");
document.write("<img id=\"search_img\" style=\"display:none;position:absolute;z-index:10000000;\" />");
function generatePassword(obj,reg)
{
	var string = "ABCDEFGHabcdefgh0123456789";
	var chars = string.split("");
	
	var maxNum = chars.length;
	var index = 0;
	var pwd = "";
	
	for(var i=0; i<9; i++)
	{
		index = Math.floor(Math.random() * maxNum);
		pwd += chars[index];
	}
	
	obj.type = "text";
	obj.value = pwd;
	obj.style.width = 80;
	return false;
}
function setInpValue(obj,doSet,defValue)
{
	if(doSet)
	{	
		if(trim(obj.value) == '')
			obj.value = defValue;
	}
	else
		if(obj.value == defValue)
			obj.value = '';
}
function showEnglImage(obj)
{
	var imgEng = document.getElementById('search_img');
	var left=0,top = 0;
	
	var objParent = obj.offsetParent;
	var height = obj.offsetHeight;
	var width = obj.offsetWidth;
	while( objParent.tagName.toUpperCase() != "BODY" )
	{
		left  += objParent.offsetLeft;
		top   += objParent.offsetTop;
		objParent = objParent.offsetParent;
	}
	
	if(!imgEng.src.match(/searchBig/gi))
		imgEng.src = web_path + 'Images/searchBig.gif';
	
	imgEng.style.top = (top + height - 30) + "px";
	imgEng.style.left = (left + width - 25) + "px";
	imgEng.style.display = "inline";
}

function hideEnglImage()
{
	var imgEng = document.getElementById('search_img');
	imgEng.style.display = "none";
}


function updateServices(obj)
{
	var objSelect = document.getElementById("service");
	var option = null;
	
	while (objSelect.options.length > 1) {
		objSelect.remove(1);
	}
	
	for(var i=0; i<services_keys[obj.value].length; i++)
	{
		option = document.createElement("option");
		option.value = services_keys[obj.value][i];
		option.text = services[obj.value][services_keys[obj.value][i]];
		if(!is_ie) objSelect.appendChild(option);
		else objSelect.add(option);
	}
	
}

function checkRequestForm(obj)
{
	var elements = obj.elements;
	unsetStyles(elements);
	var fail = false;
	
	objDisable(obj,false);
	
	for(var i=0; i< elements.length; i++)
	{
		if(elements[i].name == "surname" && trim(elements[i].value) == "")
		{
			setStyle(elements[i],i);
			fail = true;
			window.alert(lang('surname_required_field'));
		}
		else if(elements[i].name == "firstname" && trim(elements[i].value) == "")
		{
			setStyle(elements[i],i);
			fail = true;
			window.alert(lang('firstname_required_field'));
		}
		else if(elements[i].name == "lastname" && trim(elements[i].value) == "")
		{
			setStyle(elements[i],i);
			fail = true;
			window.alert(lang('lastname_required_field'));
		}
		else if(elements[i].name == "company" && trim(elements[i].value) == "")
		{
			setStyle(elements[i],i);
			fail = true;
			window.alert(lang('company_required_field'));
		}
		else if(elements[i].name == "email" && !valid_email(elements[i].value))
		{
			setStyle(elements[i],i);
			fail = true;
			window.alert(lang('empty_email'));
		}
		else if(elements[i].name == "service" && trim(elements[i].value) == "")
		{
			setStyle(elements[i],i);
			fail = true;
			window.alert(lang('select_service_please'));
		}
		else if(elements[i].name == "comment" && trim(elements[i].value) == "")
		{
			setStyle(elements[i],i);
			fail = true;
			window.alert(lang('empty_comment'));
		}
		
	}

	if(fail)
	{
		objDisable(obj,true);
		return false;
	}
	
	if(postRequestForm(obj))
	{
		window.alert(lang('request_sent'));
		obj.style.display = "none";
		return false;
	}
	
	return true;
}

function checkCommentForm(obj)
{
	var elements = obj.elements;
	unsetStyles(elements);
	var fail = false;
	
	objDisable(obj,false);
	
	for(var i=0; i< elements.length; i++)
	{
		if(elements[i].name == "firstname" && trim(elements[i].value) == "")
		{
			setStyle(elements[i],i);
			fail = true;
			window.alert(lang('feel_firstname'));
		}
		else if(elements[i].name == "comment" && trim(elements[i].value) == "")
		{
			setStyle(elements[i],i);
			fail = true;
			window.alert(lang('feel_comment'));
		}
	}

	if(fail)
	{
		objDisable(obj,true);
		return false;
	}
	
	return true;
}

function postRequestForm(obj)
{
	var query = createQueryString(obj);
	
	var req = new XMLHttpRequest();
	
	if(req)
	{
		req.open("POST",obj.action,false);
		req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
		req.send(query);
		
		if(req.responseText.match(/ok/))
		{
			return true;
		}
		
		return false;
	}
	
	return false;
}

function AjaxSearch(obj)
{
	var query = createQueryString(obj);
	
	var req = new XMLHttpRequest();
	
	if(req)
	{
		req.onreadystatechange = function()
		{
			if(req.readyState == 4)
			{
				hideLoadingDiv();
				//alert(req.responseText);
				eval(req.responseText);
			}
			else
			{
				showLoadingDiv();
			}
		}
		
		req.open("GET",obj.action + "?" + query, true);
		req.send(null);
		
		return false;
	}
	
	return true;
}


function submitLoginForm()
{
	if(loginFormSubmit(document.getElementById("loginForm")))
	{
		document.getElementById("loginForm").submit();
	}
}

function trim(str)
{
	RegExp.multiline = true;
	return str.replace(/^\s*/,"").replace(/\s*$/,"");
}

function valid_email(str)
{
	
	var reg = new RegExp('^[a-z][a-z0-9\._\-]+@[a-z0-9\._\-]+\.[a-z]+$',"i");
	
	return str.match(reg);
}

function objShow(id,obj2)
{
	obj = document.getElementById(id);
	obj.style.display = "inline";
	if(obj2 != undefined)
		obj2.style.display = "none";
	return false;
}

function showImage(src,width,height)
{
	var win = window.open(src,'image',"width="+(width+40)+", height="+(height+40)+",scrollbars=yes");
	win.focus();
	
}

function changeScreenShot(i,all,project)
{
	for(var j=1; j <= all; j ++)
	{
		document.getElementById("screen_shot_" + project + "_" +j).style.display = "none";
	}
	
	if(current_screenshot[project] == null)
	{
		current_screenshot[project] = 1;
	}
	
	if(current_screenshot[project] != 1 && i == -1)
	{
		document.getElementById("screen_shot_" + project + "_" +(current_screenshot[project]-1)).style.display = "inline";
		current_screenshot[project] --;
	}
	else if(current_screenshot[project] < all && i == 1)
	{
		document.getElementById("screen_shot_" + project + "_"+(current_screenshot[project]+1)).style.display = "inline";
		current_screenshot[project] ++;
	}
	
	if(current_screenshot[project] <= 1)
	{
		document.getElementById("prev_screenshot_"+project).style.visibility = "hidden";
	}
	else
	{
		document.getElementById("prev_screenshot_"+project).style.visibility = "visible";
	}
	
	if(current_screenshot[project] >= all)
	{
		document.getElementById("next_screenshot_"+project).style.visibility = "hidden";
	}
	else
	{
		document.getElementById("next_screenshot_"+project).style.visibility = "visible";
	}
}

function getFormField(name,objForm)
{
	var elements = objForm.elements;
	for(var i=0; i < elements.length; i++)
	{
		if(elements[i].name != undefined && elements[i].name == name)
		{
			return elements[i];
		}
	}
	
	return undefined;
}

function showLoadingDiv()
{
	var div = document.getElementById("loading_div");
	var left = Math.ceil(window.screen.width/2);
	var top = Math.ceil(window.screen.height/2);
	div.style.left = left - 200;
	div.style.top = top - 100;
	div.innerHTML = lang("loading");
	div.style.display = "inline";
}

function hideLoadingDiv()
{
	var div = document.getElementById("loading_div");
	div.style.display = "none";
}

function checkUserForm(obj,edit)
{
	objDisable(obj,false);
	var elements = obj.elements;
	success = true;
	unsetStyles(elements);
	UF_add_preset(edit);
	var login = getFormField('login',obj);
	for(var i=0; i < elements.length; i++)
	{
		if(elements[i].name != undefined)
		{
			if(UF_is_required(elements[i].name) && elements[i].value == "")
			{
				if(UF_errors[elements[i].name] != undefined)
				{
					setStyle(elements[i],i);
					window.alert(lang(UF_errors[elements[i].name]));
				}
				success = false;
			}
			else if(UF_is_required(elements[i].name) && UF_regexp[elements[i].name] != undefined)
			{
				if(!elements[i].value.match(UF_regexp[elements[i].name]))
				{
					if(UF_errors[elements[i].name] != undefined)
					{
						setStyle(elements[i],i);
						window.alert(lang(UF_errors[elements[i].name]));
					}
					success = false;
				}
			}
			else if(UF_regexp[elements[i].name] != undefined && elements[i].value != "")
			{
				if(!elements[i].value.match(UF_regexp[elements[i].name]))
				{
					if(UF_errors[elements[i].name] != undefined)
					{
						setStyle(elements[i],i);
						window.alert(lang(UF_errors[elements[i].name]));
					}
					success = false;
				}
			}
			
			if(elements[i].name == "login")
			{
				if(login.value.length < 3 || login.value.length > 20)
				{
					setStyle(elements[i],i);
					window.alert(lang('short_or_long_login'));
					success = false;
				}
			}
			
			else if(elements[i].name == "pwd" && (!edit || elements[i].value != ""))
			{
				if(elements[i].value.length < 6 || elements[i].value.length > 16)
				{
					setStyle(elements[i],i);
					window.alert(lang('short_or_long_pwd'));
					success = false;
				}
				else
				{
					var conf_pwd = getFormField('pwd_conf',obj);
					if(conf_pwd.value != elements[i].value)
					{	
						setStyle(elements[i],i);
						window.alert(lang('pwd_not_eq_pwd'));
						success = false;
					}
					
					if(elements[i].value == login.value)
					{
						setStyle(elements[i],i);
						window.alert(lang('pwd_eq_login'));
						success = false;
					}
				}
			}
		}
	}
	
	if(!success)
	{
		objDisable(obj,true);
	}
	
	var email = getFormField('email',obj);
	
	if(success)
	{
		return checkUserExists(obj, login.value, email.value);
	}
	else
	{
		return false;
	}
}

function checkUserExists(obj,login, email)
{
	var req = new XMLHttpRequest();
	if(req)
	{
			req.onreadystatechange = function ()
			{
			}; // function()
			
			req.open("POST", php_self, false);
			req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
			req.send("plugin=User&do=check&login="+escape(login)+"&email="+escape(email)+"&js=1");
			
			if(req.responseText.match(/\|/gi))
			{
				var info = req.responseText.split("|");
				user_exists = false;
			
				if(info[0] != "0")
				{
					user_exists = true;
					alert(lang("user_exists"));
				}
				
				if(info[1] != "0")
				{
					user_exists = true;
					alert(lang("email_exists"));
				}
					
				if(user_exists)
				{
					objDisable(obj,true);
				}

			} //if(req.responseText.match(......))
				
				
	}	//if(req)
	else
	{
		user_exists = false;
	}
	
	return !user_exists;
}


function UF_add_preset(edit)
{
	var i;
	i = UF_required.length;
	UF_required[++i] = "email";
	UF_required[++i] = "login";
	
	if(!edit)
	{
		UF_required[++i] = "pwd";
		UF_required[++i] = "pwd_conf";
	}
	
	UF_required[++i] = "ip_filter";
	UF_regexp['email'] = new RegExp('^[a-z0-9\._\-]+@[a-z0-9\._\-]+\.[a-z]+$',"i");
	UF_regexp['login'] = new RegExp('^[a-z][a-z0-9_\-]+$',"i");
}

function lang(name)
{
	if(nativeLang == undefined)
	{
		window.alert("Please use php function exportLangToJs(); \n to exporting language variables!");
		return "undefined";
	}

	if(nativeLang[name] != undefined)
		return nativeLang[name];
	else
	{
		return "{undefined:"+name+"}";
	}
}

function UF_is_required(name)
{
	if(UF_required != undefined)
	{
		for(var i=0; i < UF_required.length; i++)
		{
			if(name == UF_required[i])
				return true;
		}
	}
	
	return false;
}

function setStyle(obj,i)
{
	old_styles[i] = obj.className;
	obj.className += " warning";
}

function unsetStyles(elements)
{
	
	for(var i=0; i<elements.length; i++)
	{
		if(old_styles[i] != undefined) 
		{
			elements[i].className = old_styles[i];
		}
	}
}

function createQueryString(obj)
{
	var elements = obj.elements;
	var query = null;
	var i,j;
	query = "js=1";
	for(var i=0; i < elements.length; i++)
	{
		if(elements[i].type=="select-multiple")
		{
			for(j=0;j<elements[i].options.length;j++)
			{
				if(elements[i].options[j].selected)
				{
					query+="&" + escape(elements[i].name).replace("+","%2B") + "=" + escape(elements[i].options[j].value).replace("+","%2B");
				}
			}
		}
		else if(elements[i].name != undefined && elements[i].name != "" && elements[i].type!="radio" && elements[i].type!="checkbox")
		{
			query += "&" + escape(elements[i].name).replace("+","%2B") + "=" + escape(elements[i].value).replace("+","%2B");
		}
		else if(elements[i].name != undefined && elements[i].name != "" && elements[i].checked)
		{
			query += "&" + escape(elements[i].name).replace("+","%2B") + "=" + escape(elements[i].value).replace("+","%2B");
		}
	}
	return query;
}
function putContent(content,id)
{
	document.getElementById(id).innerHTML = content;
}

function getBlock(name,id)
{
	var req = new XMLHttpRequest();
	if(req)
	{
		req.onreadystatechange = function ()
		{
			if(req.readyState == 4 && (req.status == 200 || req.status == 304))
			{
				hideLoadingDiv();
				putContent(req.responseText,id);
			}
			else
			{
				showLoadingDiv();
			}
		}
		
		req.open("POST", php_self, true);
		req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
		req.send("getblock="+escape(name)+"&js=1");
	}
	
}

function loginFormSubmit(obj)
{
	objDisable(obj,false);
	var query = createQueryString(obj);
	var req = new XMLHttpRequest();
	if(req)
	{
		req.onreadystatechange = function ()
		{
			if(req.readyState == 4 && (req.status == 200 || req.status == 304))
			{
				hideLoadingDiv();
				if(req.responseText.match(/ok/ig))
				{
					getBlock("user-block","user-block");
				}
				else
				{
					objDisable(obj, true);
					window.alert(req.responseText);
				}
			}
			else
			{
				showLoadingDiv();
			}
		}
		req.open("POST", php_self, true);
		req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
		req.send(query);
		return false;
	}
	
	return true;
}

function objDisable(obj,reverse)
{
	for(var i=0; i<obj.elements.length;i++)
	{
		if((obj.elements[i].type == "submit"))
		{
			obj.elements[i].disabled = ( reverse ? false : true );
		}
	}
}

function showObject(obj,id)
{
	if(obj.checked)
	{
		document.getElementById(id).style.display = "";
	}
	else
	{
		document.getElementById(id).style.display = "none";
	}
}

function requestDelete(obj,message)
{
	if(confirmDelete(message))
	{
		if(obj.href == undefined)
		{
			return true;
		}
		
		var url = obj.href;
		var parentObj = obj.parentNode;
		
		while(parentObj.tagName.toUpperCase() != "TR")
		{
			parentObj = parentObj.parentNode;
		}
		
		if(parentObj.rowIndex == undefined)
		{
			return true;
		}		
		
		var i = parentObj.rowIndex;
		var req = new XMLHttpRequest();
		
		if(req)
		{
			req.onreadystatechange = function()
			{
				if(req.readyState == 4 && (req.status == 200 || req.status == 304))
				{
					hideLoadingDiv();
					if(req.responseText.match(/ok/ig))
					{
						objTable = parentObj.parentNode;
						objTable.deleteRow(i);
					}
					else
					{
						window.alert(connectionFailed);
					}
				}
				else
				{
					showLoadingDiv();
				}
				
			};
			req.open("GET",url + ( url.match(/\?/) ? "&js=1" : "?js=1") , true);
			req.send(null);
			return false;
		}
		
		return true;
		
	}
	return false;
}

function confirmDelete(str)
{
	if(window.confirm(str))
		return true;
	return false;
}

