function initialize(page)
{
	try
	{document.getElementById(page + '-li').className="current";}
	catch(err){}
}
function confirmLink(msg)
{
	return confirm(msg);

} 
var page;
function redirct(p,period)
{
	if(period == null)
		period = 3000;
	page=p;
	setTimeout(redirct2,period);
}
function redirct2()
{document.location=page;}

function SelectedRow(item)
{
	if(item.checked)
		item.parentNode.parentNode.className += " selected-row";
	else
        item.parentNode.parentNode.className = 
        		item.parentNode.parentNode.className.replace(new RegExp(" selected-row\\b"), '');
}
//##### Validation ######//

var validateItems = new Array;
var validationIsAbsolute = false;

function Validation(name,ty,txt,range,style,location){

	var parentNode;	
	this.name=name;
	this.type=ty;
	this.txt=txt;
	this.style=style;
	
	switch(this.type)
	{
		case 'RADIO':
		{
			this.item=document.getElementsByName(name);
			parentNode = this.item[0].parentNode;
			for(j=0;j<this.item.length;j++)
				this.item[j].onclick = function(){IsItemValid(this)};
			break;
		}
		case 'CHECKBOX':
		{
			this.item = new Array();
			var names = name.split(' ');
			for(j=0;j<names.length;j++)
				this.item.push(document.getElementsByName(names[j])[0]);
			parentNode = this.item[0].parentNode;
			
			for(j=0;j<this.item.length;j++)
				this.item[j].onclick = function(){IsItemValid(this)};
			break;
		}
		default:
		{
			this.item=document.getElementsByName(name)[0];
			var temp = this;
			this.item.onblur = function(){IsItemValid(this)};
			parentNode = this.item.parentNode;
			if(this.type == 'RANGE' || this.type == 'COUNTRANGE')
			{
				this.start = range.split('-')[0];
				this.end = range.split('-')[1];
			}
			if(this.type == 'DATE')
				this.item.style.direction = 'ltr';
			break;
		}
	}
	this.enabled=true;
	
	
	this.text = document.createElement('A');
	txt = document.createTextNode(txt);
	this.text.appendChild(txt);
	this.text.name = 'loc_' + name;
	this.text.id = 'loc_' + name;
	
	this.text.className = 'valid';
	this.text.style.cssText  = style;
	
	if(this.type == 'RADIO' || this.type == 'CHECKBOX')
	{
		for(j=0;j<this.item.length;j++)
		{
			if(this.item[j].parents==null)
				this.item[j].parents = new Array();
			
			this.item[j].parents.push(this);
		}
		
		if(location==null)
		{
			try{parentNode.parentNode.insertBefore(this.text,this.item[0].parentNode.parentNode.childNodes[this.item[0].parentNode.parentNode.childNodes.length-1].nextSibling.nextSibling);}
			catch(err){parentNode.parentNode.insertBefore(this.text,temp = this.item[0].parentNode.parentNode.childNodes[this.item[0].parentNode.parentNode.childNodes.length-1].nextSibling);}
		}
	}	
	else
	{
		if(location==null)
		{
			try{parentNode.insertBefore(this.text,this.item.parentNode.childNodes[this.item.parentNode.childNodes.length-1].nextSibling.nextSibling);}
			catch(err){parentNode.insertBefore(this.text,this.item.parentNode.childNodes[this.item.parentNode.childNodes.length-1].nextSibling);}
		}
		if(this.item.parents==null)
			this.item.parents = new Array();
		
		this.item.parents.push(this);
	}
	
	if(location!=null)
		location.appendChild(this.text);

	this.IsValid=function(){
		switch(this.type)
		{
			case 'EMAIL':
				return this.isValidEmail();
				break;
			case 'MOBILE':
				return this.isValidMobile();
				break;
			case 'CHECKBOX':
				return this.isValidChecked();
				break;
			case 'NOTEMPTY':
				return this.isValidNotEmpty();
				break;
			case 'RADIO':
				return this.isValidChecked();
				break;
			case 'NUMBER':
				return this.isValidNumber();
				break;
			case 'RANGE':
				return this.isValidRange();
				break;
			case 'COUNTRANGE':
				return this.isValidCountRange();
				break;
			case 'CHARS':
				return this.isValidChars();
				break;
			case 'ENGLISH':
				return this.isValidEnglish();
				break;
			case 'DATE':
				return this.isValidDate();
				break;
		}
		return true;	
	}
	this.isValidChars=function(){
		if( this.item.value == '')
			return true;
	    validRegExp = /[$\\@\\\#%\^\&\*\(\)\[\]\+\_\{\}\`\~\=\|0-9]/;
	    return this.item.value.search(validRegExp) == -1;
	}
	this.isValidNotEmpty=function(){
	    return this.item.value != ""; 
	}
	this.isValidChecked=function(){
		var checked = false;
		for(j=0;j<this.item.length;j++)
			checked |= this.item[j].checked;
	    return checked;
	}
	this.isValidNumber=function(){
		return (Number(this.item.value) || this.item.value == '' || this.item.value == '0'); 
	}
	this.isValidRange=function(){
		if( this.item.value == '')
			return true;
		return (this.start <= Number(this.item.value) && Number(this.item.value) <= this.end) ; 
	}
	this.isValidCountRange=function(){
		return (this.start <= this.item.value.length && this.item.value.length <= this.end) ; 
	}
	this.isValidEmail=function(){
	    validRegExp = "^[\\w]+[\\w-_\.]*(\.[\\w-_]+)*@[\\w-_]+(\.[\\w-_]+)*\.([\\w-_]+){2,}$";
	    var emails = this.item.value.split(';');
	    var isValid = true;
	    for(j=0 ;j<emails.length;j++)
	    	if(emails[j]!= "")
	    		isValid &= emails[j].search(validRegExp) != -1;
	    return isValid;
	}
	this.isValidMobile=function(){
		if(this.item.value == "")
			return true;
	    validRegExp = "([0-9]+){9}$";
	    return this.item.value.search(validRegExp) != -1;
	}
	this.isValidEnglish=function(){
		if(this.item.value == "")
			return true;
	    validRegExp = "(^[\\w]+)([\\w]+)$";
	    return this.item.value.search(validRegExp) != -1;
	}
	this.isValidDate=function(){
		if( this.item.value == '')
			return true;
	    validRegExp = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/;
	    return this.item.value.search(validRegExp) != -1;
	}

}

function IsFormValid(_vItems)
{
	if(_vItems != null)
		vItems = _vItems;
	else
		vItems = validateItems;

	var isValid = true;
	var isRedirct = true;
	
	for(i=0;i < vItems.length ;i++)
	{
		if(! vItems[i].IsValid() && vItems[i].enabled){
			isValid = false;			
			vItems[i].text.className="unvalid";
			
			if(isRedirct)
			{
				document.location = '#' + vItems[i].text.id ;
				isRedirct = false;
			}							
		}
		else
			vItems[i].text.className="valid";		
	}
	return isValid;
}
function IsItemValid(item)
{
	for(v=0;v<item.parents.length;v++)
	{
		if( item.parents[v].enabled && !item.parents[v].IsValid())
			item.parents[v].text.className="unvalid";						
		else
			item.parents[v].text.className="valid";
	}
}

//##### Actions Select ####//

function ChangeAction(item,username,form)
{
	var isOk = true;
	switch(item.value)
	{
		case 'recycle-bin':
			isOk = confirm( 'هل أنت متأكد من نقل '+ username  + ' إلى سلة المحذوفات');
			break;
		case 'recycle-bin-final':
			isOk = confirm( 'هل أنت متأكد من نقل '+ username + ' إلى سلة المحذوفات نهائياً');
			break;
		case 'delete':
			isOk = confirm( 'هل أنت متأكد من حذف '+ username );
			break;
		case 'delete-final':
			isOk = confirm( 'هل أنت متأكد من حذف '+ username + ' حذف نهائي');
			break;
		case 'wait':
			isOk = confirm( 'هل أنت متأكد من وضع العضو '+ username + ' في قائمة الإنتظار');
			break;
		case 'wait-no-send':
			isOk = confirm( 'هل أنت متأكد من وضع العضو'+ username + ' في قائمة الإنتظار بدون تبليغ');
			break;
	}
		
	if(isOk)
	{
		form = document.getElementsByName(form)[0];
		if(form != null)
		{
			var newField = document.createElement("INPUT");
			newField.id = newField.uniqueID;
			newField.setAttribute("type","hidden");
			newField.setAttribute("name","action");
			newField.setAttribute("value",item.parentNode.action.value); 
			form.appendChild(newField);
			
			newField = document.createElement("INPUT");
			newField.id = newField.uniqueID;
			newField.setAttribute("type","hidden");
			newField.setAttribute("name","id");
			newField.setAttribute("value",item.parentNode.id.value); 
			form.appendChild(newField);
			form.submit();
		}
		else
			item.parentNode.submit();
	}
	else
		item[0].selected="selected";
}
function ChangeAction2(item,part)
{
	var isOk = true;
	switch(item.value)
	{
		case 'recycle-bin':
			isOk = confirm( 'هل أنت متأكد من نقل إلى سلة المحذوفات');
			break;
		case 'delete':
			isOk = confirm( 'هل أنت متأكد من الحذف' );
			break;
	}
	if(isOk)
		document.getElementById('part' + part + '_action-select-2').submit();
	else
		item[0].selected="selected";

}

///###### Action Results #####//

function ActionResults(_actionResults,_count,_redirect,_size)
{
	var actionResults = _actionResults;
	var count = _count;
	var redirect = _redirect;
	var size;
	if(_size==null)
		size = 60;
	else
		size = _size;
		
	
	Sound.play('motqen.wav');

	actionResults.style.bottom = '-'+ size * count +'px';
	actionResults.style.display = 'block';
	
	function ShowActionResults()
	{
		var increment = eval(actionResults.style.bottom.replace('px',''))+10;

		actionResults.style.bottom = increment+'px';

		if( eval(actionResults.style.bottom.replace('px','')) < 0)
			setTimeout(ShowActionResults,30);
		else
			setTimeout(HidActionResults,count*size*50);

	}
	
	function HidActionResults()
	{
		var increment = eval(actionResults.style.bottom.replace('px',''))-10;
	
		actionResults.style.bottom = increment+'px';
		
		if( eval(actionResults.style.bottom.replace('px','')) > - size * count)
			setTimeout(HidActionResults,30);
		else
		{	
			document.getElementsByTagName('body')[0].removeChild(actionResults);
			if(redirect != null)
				redirct(redirect,0);
		}
	}
	
	ShowActionResults();
	
}
//###### CheckAll ######//
function CheckAll(item,pageItems,part)
{
	if(part == null)
		part = 0;
	for(i=0;i<pageItems;i++)
	{	
		document.getElementsByName( "part" + part + "_checkbox_" + i)[0].checked = item.checked;
		document.getElementsByName( "part" + part + "_checkbox_" + i)[0].onclick();
	}
}

/// Style ///

function swapStyle(name)
{
	var style_n;
	switch(name)
	{
		case 'blue':
			style_n=4;
		break;
		case 'mov':
			style_n=5;
		break;
		case 'red':
			style_n=6;
		break;
		case 'orange':
			style_n=7;
		break;
		case 'green':
			style_n=8;
		break;
	}
	document.getElementById("style-link").href="images/style-"+name+".css";
	createCookie("style-link",name,10);
	createCookie("bbstyleid",style_n,10);
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
function eraseCookie(name) {
	createCookie(name,"",-1);
}

// Prayer Time //

 var http_request_pray = false; 
  var http_request_pray_city = false; 

function pray_ajax(f,x) { 
		document.getElementById('pray-ajax').innerHTML = '<table width="100%" height="100%"><tr><td align="center"><img src="http://www.factway.net/images/loader.gif"  align="middle"/></td></tr></table>';
   if (window.XMLHttpRequest) { // Mozilla, Safari,... 
       http_request_pray = new XMLHttpRequest(); 
   } else if (window.ActiveXObject) { // IE 
       http_request_pray = new ActiveXObject("Microsoft.XMLHTTP"); 
   } 
   
   var city='39.49,21.26';
   if(x==1)
       	city=document.getElementById('city').value;

   	var Long=city.substr(0,4);
  	var lat=city.substr(6,10);

   var gmt=document.getElementById('pray-country').value;
   
   	for(i=1;i<6;i++)
   		if(gmt.substr(i,1)=='%')
   			gmt=gmt.substr(0,i);      		      		
		
   	var type;
   	if(document.getElementsByName('prayer_type')[0].checked)
   		type=1;
   	if(document.getElementsByName('prayer_type')[1].checked)
   		type=2;

   http_request_pray.onreadystatechange = alertContents_pray; 
   
   http_request_pray.open('get', f+'?long='+Long+'&lat='+lat+'&gmt='+gmt+'&type='+type+'&date='+new Date(),true); 
   http_request_pray.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8"); 
   http_request_pray.setRequestHeader ("Connection", "close");
   http_request_pray.send(null); 

} 


function alertContents_pray() { 

   if (http_request_pray.readyState == 4) { 
       if (http_request_pray.status == 200) { 
           document.getElementById('pray-ajax').innerHTML = http_request_pray.responseText;
       } else { 
            //document.getElementById('pray-ajax').innerHTML ='There was a problem with the request.'; 
       } 
   }
   
  }
  
  
  function pray_city_ajax(f) { 
		document.getElementById('pray-ajax').innerHTML = '<table width="100%" height="100%"><tr><td align="center"><img src="http://www.factway.net/images/loader.gif"  align="middle"/></td></tr></table>';      
   if (window.XMLHttpRequest) { // Mozilla, Safari,... 
       http_request_pray_city = new XMLHttpRequest(); 
   } else if (window.ActiveXObject) { // IE 
       http_request_pray_city = new ActiveXObject("Microsoft.XMLHTTP"); 
   } 
   var country=document.getElementById('pray-country').value;
	
	for(i=1;i<6;i++)
		if(country.substr(i,1)=='%')
       		country=country.substr(i+1,country.length-i+1);

   
   http_request_pray_city.onreadystatechange = alertContents_pray_city; 
   http_request_pray_city.open('get', f+'?country='+country+'&date=',true); 
   http_request_pray_city.setRequestHeader("Content-type", "application/x-www-form-urlencoded; utf-8"); 
   http_request_pray_city.setRequestHeader ("Connection", "close");
   http_request_pray_city.send(null); 
   


} 


function alertContents_pray_city() { 

   if (http_request_pray_city.readyState == 4) { 
       if (http_request_pray_city.status == 200) { 
           document.getElementById('pray-city').innerHTML = http_request_pray_city.responseText;
            pray_ajax('http://www.factway.net/prayertime.php',1);
       } else { 
            //document.getElementById('pray-ajax').innerHTML ='There was a problem with the request.'; 
       } 
   }
   
  }

  
//###### Ajax #####

function MyAjax(method,link,params,loaderContainer,targetContainer,loader,loaderStyle,OnFinish){
	
    var httpRequest =false;
    var method = method;
    var link = link;
    var params = params;
    var loaderContainer = loaderContainer;
    var targetContainer = targetContainer;
    var loader = loader;
    var loaderStyle = loaderStyle;
    
    var OnFinish = OnFinish;
    
	loaderContainer.innerHTML = '<div style="' + loaderStyle + '">' + loader + '</div>';
	
	if (window.XMLHttpRequest) { // Mozilla, Safari,... 
	   httpRequest=new XMLHttpRequest();
	} else if (window.ActiveXObject) { // IE 
	   httpRequest=new ActiveXObject("Microsoft.XMLHTTP");
	} 
	
	if( method == 'get')
		httpRequest.open(method, link + params,true); 

	if( method == 'post')
	{	
		httpRequest.open(method, link ,true); 
		if(params != null)
			httpRequest.setRequestHeader("Content-length", params.length);
	}
	
	httpRequest.onreadystatechange = OnComplete;
	
	function OnComplete(){
		if (httpRequest.readyState == 4) { 
			if (httpRequest.status == 200) {
				loaderContainer.innerHTML = "";
				
				div = document.createElement('div');
				div.innerHTML = httpRequest.responseText;
				
				if(targetContainer != null)
				{
					if(targetContainer.tagName == 'TR' )
					{	
						if(div.getElementsByTagName('td').length > 0)
							for(i=0; i<targetContainer.cells.length;i++)
								targetContainer.cells[i].innerHTML = div.getElementsByTagName('td')[i].innerHTML;
					}
					else
						targetContainer.innerHTML = div.innerHTML;
				}
				divs = div.getElementsByTagName('div');
				for(i=0;i<divs.length;i++)
					if(divs[i].id == 'action-results')
					{
						id = Math.random();
						divs[i].id = "action-results"+id;
						document.getElementsByTagName('body')[0].appendChild(divs[i]);							
						
						new ActionResults(document.getElementById("action-results"+id),1,null,null);
					}
			} 
			else { 
				//targetContainer.innerHTML ='There was a problem with the request.'; 
			} 
			if(OnFinish != null)
				OnFinish();
		}
	}
	
	httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	httpRequest.setRequestHeader ("Connection", "close");
	httpRequest.send(params);	

}

// ###### Preview #####//
function Preview(content){
	
	var preview = document.getElementById('preview');
	var previewContent = document.getElementById('preview-content');
	
	preview.style.display = 'none';
	preview.style.visibility = 'visible';
	preview.style.width = 500;
	previewContent.style.height = 400;
	preview.style.left = document.getElementsByTagName('body')[0].clientWidth / 2 -250;
	preview.style.top = 100;
	
	MyAjax('post','ajax.php?action=message-preview',"string="+content,previewContent,
			previewContent,'<img src="images/loader.gif"/>','text-align:left',null);
	
	Effect.Appear(preview.id);
	//new Draggable(preview.id,{$effectAttributes});
}

function EditRow(action,id,replaced,editRow,fields,validations)
{
	var fields = fields.split(',');
	
	var input,paras,loader;
	paras ="id="+id+"&";
	
	for(i=0;i<fields.length;i++)
	{
		value = replaced.cells[eval(fields[i])].innerHTML;
		replaced.cells[eval(fields[i])].innerHTML = "";
		
		inputs = selects = null;
		
		inputs = editRow.cells[eval(fields[i])].getElementsByTagName('input');
		if(inputs.length > 0 )
		{
      		if( inputs[0].type == 'text')
      		{
	      		replaced.cells[eval(fields[i])].innerHTML = '<input name="' + inputs[0].name + replaced.rowIndex + 
    								'" type="text"/>';
				inp = document.getElementsByName(inputs[0].name + replaced.rowIndex)[0];
				inp.style.cssText = inputs[0].style.cssText;
				inp.className = inputs[0].className;
				inp.value = value;
      		}
			if( inputs[0].type == 'submit')
			{
	      		replaced.cells[eval(fields[i])].innerHTML = editRow.cells[eval(fields[i])].innerHTML;
				input = replaced.cells[eval(fields[i])].getElementsByTagName('input')[0];
				loader = document.createElement('SPAN');
				input.parentNode.insertBefore(loader,input.nextSibling);				
			}
		}
		
		selects = editRow.cells[eval(fields[i])].getElementsByTagName('select');
		if(selects.length > 0)
		{	
			replaced.cells[eval(fields[i])].innerHTML = '<select name="' + selects[0].name + replaced.rowIndex + '"/>';
			sel = document.getElementsByName(selects[0].name + replaced.rowIndex)[0];
			sel.style.cssText = selects[0].style.cssText;
			sel.className = selects[0].className;
			
      		for(j=0;j<selects[0].options.length;j++)
      			sel.options[j] = new Option(selects[0].options[j].text,selects[0].options[j].value);

      		replaced.cells[eval(fields[i])].appendChild(sel);      		
			for(j=0; j<sel.options.length; j++)
				if(sel.options[j].text == value)
					sel.selectedIndex = j;
		}
	}
	var validItems = new Array();
	for(i=0;i<validations.length;i++)
		validItems.push(new Validation(validations[i].name+replaced.rowIndex,
						validations[i].type,
						validations[i].txt,
						null,
						validations[i].style));
						
	input.onclick = function(){
		this.disabled = true;
		if(!IsFormValid(validItems))
			return false;
		for(i=0;i<fields.length;i++)
		{
			inputsNames = editRow.cells[eval(fields[i])].getElementsByTagName('input');
			inputs = replaced.cells[eval(fields[i])].getElementsByTagName('input');
			if(inputs.length > 0 )
				paras += inputsNames[0].name+"="+inputs[0].value+"&";

			selectsNames = editRow.cells[eval(fields[i])].getElementsByTagName('select');
			selects = replaced.cells[eval(fields[i])].getElementsByTagName('select');
			if(selects.length > 0)
				paras += selectsNames[0].name+"="+selects[0].value+"&";

		}
		MyAjax('post','ajax.php?action='+action,paras,loader,replaced,'<img src="images/loading.gif"/>','display:inline',null);
		return false;
	}
	
}
function AddRow(action,table,form,fields,validations,sender,styles)
{	
	if(!IsFormValid(validations))
			return false;
			
	fields = fields.split(',');
	
	var paras,loader;
	paras ="";
	for(i=0;i<fields.length;i++)
	{
		inputs = form.getElementsByTagName('input');
		if(inputs.length > 0 )
		{
			paras += inputs[0].name+"="+inputs[0].value+"&";
			inputs[0].value= "";
		}

		selects = form.getElementsByTagName('select');
		if(selects.length > 0)
		{
			paras += selects[0].name+"="+selects[0].value+"&";
			selects[0].selectedIndex =0;
		}

	}
	paras += "index=" + table.rows.length;
	newRow = table.insertRow(table.rows.length);
	newRow.style.display = 'none';
	newRow.className = styles[table.rows.length%styles.length];
	
	for(i=0;i<table.rows[0].cells.length;i++)
		td = newRow.insertCell(i);
	
	loader = document.createElement('SPAN');
	sender.parentNode.insertBefore(loader,sender.nextSibling);

	onclick = sender.onclick;
	OnFinish = function(){newRow.style.display = 'table-row';sender.onclick = onclick;sender.disabled = false;}
	sender.onclick = "";
	sender.disabled = true;
	
	MyAjax('post','ajax.php?action='+action,paras,loader,newRow,'<img src="images/loading.gif"/>','display:inline',OnFinish);
}
function AddFriend(sender,friendId)
{
	sender.className = "link-disabled";
	onc = sender.onclick;
	sender.onclick = "";
	
	loader = document.createElement('SPAN');
	sender.parentNode.insertBefore(loader,sender.nextSibling);
	
	paras = "&friendid="+friendId;	
	
	var ajax = new MyAjax('post','ajax.php?action=add-friend2',paras,loader,null,
				'<img src="images/loading.gif"/>','display:inline',null);
}

function ShowFriends(sender,input)
{
	var friends = document.getElementById('friends');
	var friendsContainer = document.getElementById('friends-container');
	
	input.parentNode.appendChild(friends);
	friends.style.top =Top(input)+input.clientHeight+3;
	friends.style.left=Left(input)+3;
	
	friends.style.width = input.clientWidth +17 ;
	
	var tds = friendsContainer.getElementsByTagName('TD');
	for(i=0; i<tds.length;i++)
		tds[i].onclick = function(){
				if(input.innerText.search(this.innerText)==-1)
					input.innerText += this.innerText+";";
		};
		
	friends.style.display = 'none';
	friends.style.visibility = 'visible';
	Effect.Appear(friends.id);
	
}

//#################////
function Left(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function Top(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}
