/* JavaScript Document */
var loading = new Array();

var section = document.location.href.replace(/^.*(&|\?)section=([^&]*).*$/g, '$2');
var module  = document.location.href.replace(/^.*(&|\?)module=([^&]*).*$/g, '$2');


Object.toQueryString = function(source){
	var queryString = [];
	for (var property in source) if(source[property]!='') queryString.push(encodeURIComponent(property)+'='+encodeURIComponent(source[property]));
	return queryString.join('&');
};

//loading.push('addStandardClass()');
function addStandardClass(parent)
{
	parent = parent ? parent+' ' : '';
	var list = $$(parent+'input');
	for(var i=0; i<list.length; i++) {
		var input = list[i];
		var type = input.getProperty('type') ? input.getProperty('type') : 'text';
		input.addClass('input_'+type);	
	}
}

function goto(idx, force)
{
	var cur = parseInt($('offset').value);
	var last = $('offset').options[$('offset').options.length-1].value;
	switch(idx) {
			case 'first': 
				idx = 1;
				break;
			case 'previous': 
				idx = cur==1 ? 1 : cur-1;
				break;
			case 'last': 
				idx = last;
				break;
			case 'next': 
				idx = cur==last ? cur :  cur+1;
				break;
			default:
				idx = Math.min(Math.max(idx, 1), last);
	}
	if(cur!=idx || force) {
		if($('searchform')) $('searchform').reset();
		if($('offset')) $('offset').value = idx;
		loadList();	
	}
}

function loadList()
{
	var query1 = $('searchform') ? '&'+$('searchform').toQueryString() : '';
	var query2 = $('sortform')   ? '&'+$('sortform').toQueryString()   : '';
	var query3 = $('listform')   ? '&'+$('listform').toQueryString()   : '';
	var url = document.location.href.replace(/&cmd=[^&]*/, '').replace(/#.*/, '')+'&cmd=list'+query1+query2+query3;
	new ajax(url, {update:'listdiv'}).request();
}

function saveToCookie(obj)
{
	var name = $pick($(obj).getProperty('id'), $(obj).getProperty('name'));
	var path = section + '/' + module + '/' + name;
	Cookie.set(encodeURI(path), $(obj).value, {});
}

function printTo(port, content)
{
	switch(port) {
		case 'prn':
			$each($(document.body).getChildren(), function(el){el.addClass('hidden');});
			printdiv = $(content).clone();
			printdiv.setStyles({
								height: Window.getSize().size.y+'px',
								background: '#FFFFFF',
								margin: '0',
								padding: '0'
						 		});
			printdiv.injectInside(document.body);
			printdiv.id="printdiv";
			var tdiv = new Element('div');
			tdiv.id = 'tdiv';			
			$each($$('#printdiv .noprint'), function(el){
				el.remove();
			});	
			
			$each($$('#printdiv .title'), function(el){
				el.setStyle('margin', '0 0 10px 0');
			});
			
			tdiv.setHTML('<div style="margin:20px; " class="noprint"><input type="button" value="Return" onclick="printTo(\'return\')"></div>');
			tdiv.injectBefore(printdiv.getFirst());
			setTimeout('window.print()', 10);
			break;	

		case 'return':
			$each(document.body.getChildren(), function(el){el.removeClass('hidden');});
			printdiv.remove();
			break;
	}
}

function openNewWindow(url, w, h)
{
	w = (w==null) ? 600 : w;
	h = (h==null) ? 450 : h;
	var target = url.test(/^index\.php.*/i) ? 'popup' : '_blank';
	var aWindow = makePopup(url, target, w, h, 'yes', 'yes');
}

function makePopup(pageURL, pageName, w, h, pageScroll, pageCenter)
{
	if(pageCenter == 'no')	{
		LeftPosition = 10;
		TopPosition = 10;
	} else {
		LeftPosition = (screen.width) ? (screen.width-w) / 2 : 0;
		TopPosition = (screen.height) ? (screen.height-h) / 2 : 0;
	}

	var pageConfig = 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=' + pageScroll + ', resizable=yes, width=' + (w + 18) + ', height=' + (h + 18) + ', left=' + LeftPosition + ', top=' + TopPosition;
	var popup = window.open(pageURL.replace(/&popup=[^&]*/,'')+'&popup=1', pageName, pageConfig);
	popup.focus();
	return popup;
}

function findID(obj)
{	
	if(obj = $(obj)) {
		alert(obj);
		while(obj = obj.getParent()) {
			if(obj.id) {
				var id =  parseInt(obj.id.replace(/^list_row_(\d)+$/ig, '$1'));
				if(id){				
					return id;
				}
			}
		}
	}
	return false;
}

function hideLoading()
{
	$('loading').addClass('hidden');	
}

function doDelete(obj, id)
{
	var id = id ? id : findID(obj);
	new ajax('index.php?section='+section+'&module='+module+'&cmd=delete&id='+id, { onComplete:loadList }).request();
}

function doEdit(lang, obj, id)
{
	if( typeof(a_window) != 'undefined') a_close(a_window, 'edit_box');
	var cmd = id ? 'edit' : 'new';
	var id = id ? id : findID(obj);
	$('edit_box').style.top =  window.getSize().scroll.y+4+'px';
	$('edit_box').style.left = Math.max((window.getSize().size.x-$('edit_box').getSize().size.x)/2, 8)+'px';
	$('loading').removeClass('hidden');
	new ajax('index.php?section='+section+'&module='+module+'&cmd='+cmd+'&id='+id+'&lang='+lang, { update:'edit_box', loading:null, onComplete:hideLoading }).request();
}

function doSubmit(frm, iframe)
{
	if($('a_submit').value == 'Saving...') return false;
	
	var oDoc = $('myframe').contentWindow || $('myframe').contentDocument;
	if (oDoc.document) {
		oDoc = oDoc.document;
	}
	oDoc.body.innerHTML = '';
	doSubmit.submitOK = function(res){
		var script, regexp = /<script[^>]*>([\s\S]*?)<\/script>/gi;
		while ((script = regexp.exec(res))) eval(script[1]);
		if(res.indexOf('[[error]]')>-1) {
			alert('Error in saving.');
			$('a_submit').value = $('a_submit').pre_value;
		} else if(res.indexOf('[[fault]]')>-1) {// error with php message
			$('a_submit').value = $('a_submit').pre_value;	
		} else {	
			a_close('edit_box');	
			loadList();	
		}
	};
	
	doSubmit.check = function(){
		var oDoc = $('myframe').contentWindow || $('myframe').contentDocument;
		if (oDoc.document) {
			oDoc = oDoc.document;
		}
		var txt = oDoc.body ? oDoc.body.innerHTML : '';
		if(txt!='' && txt!='false') {
			doSubmit.submitOK(txt);	
			//doSubmit.myframe.remove();
		} else {
			doSubmit.check.delay(500);
		}
	};
	
	if(iframe) {
		doSubmit.check.delay(500);
	} else {
		var a = new ajax(null, { evalScripts:true, onComplete:this.submitOK, method:'post' });
		a.setHeader('Content-type', 'multipart/form-data; charset=utf8');
		a.send('index.php', $('adminform').toQueryString());
	}
	$('a_submit').pre_value = $('a_submit').value;
	$('a_submit').value = 'Saving...';
	return iframe;
}

function doDeleteImage(dir, id)
{
	doDeleteImage.removeImage = function()
	{
		$('imageBox') && $('imageBox').remove();
	}
	new ajax('index.php?section='+section+'&module='+module+'&cmd=deleteimage&id='+id, {onComplete:doDeleteImage.removeImage, update:'imageBox'}).request();
}

function a_close(obj, newid)
{
	$(obj).setHTML('');
	if(newid) $(obj).id = newid;
}

function a_minimize(sender, obj)
{
	$(obj).t_height = $(obj).getSize().size.y;
	
	var style = {
					height: '23px',
					overflow: 'hidden' 
				};				
	$(obj).setStyles(style);
	$(sender).addClass('hidden');
	$(sender).getNext().removeClass('hidden');
}

function a_restore(sender, obj)
{
	var style = {
					height: $(obj).t_height,
					overflow: 'visible' 
				};
	$(obj).setStyles(style);
	sender.addClass('hidden');
	sender.getPrevious().removeClass('hidden');
}

function setGroupName(selobj, inpobj, imgobj, group)
{
	if($(selobj)) {
		$(inpobj).value=$(selobj).options[$(selobj).selectedIndex].text;	
		$(imgobj).src = 'showpic.php??mw=64&mh=64&dir='+group+'&pic='+$(selobj).value;
	}
}

function doNewGroup(rowobj, cmdobj, txtobj)
{
	$(cmdobj).value = 'insert';
	$(rowobj).remove();
	$(txtobj).value='';
}

function doDeleteGroup(cmdobj)
{
	if(confirm('Do you want to delete this group?')) {
		$(cmdobj).value = 'delete';
		$(cmdobj).form.submit();
	}
}

function addRecord(sender, obj)
{
	obj = $(obj);
	var clone = obj.clone();
	clone.injectBefore($(sender));
	clone.id = 'temp_cloned';
	$$('#temp_cloned INPUT, #temp_cloned SELECT, #temp_cloned TEXTAREA').each(function(el){
		el.name = el.name.replace(/^~/, '');
	});
	clone.id = null;
	clone.removeClass('hidden');
}

function checkTextDOM(dom1)
{
	if(dom1.value=="") {
		dom1.className = "RequiredField";
		return false;
	}
	else {
		dom1.className = "";
		return true;
	}
}
function checkFormItem(lang, dom1)
{
	//you must set form onsubmit="checkFormItem(this);"
	//and set onblur items...
	//if need check before send form onblur="checkFormItem(this);"
	//else onblur="" that goal is check this item on onsubmit
	var retflag = true;
	if(dom1.tagName=="FORM") {
		for(i=dom1.elements.length-1;i>=0;i--) {
			try{
				if(dom1.elements[i].onblur!=null) {
					if(dom1.elements[i].id=="xpassword2") {
						if(!checkFormPassword(dom1.elements[i-1], dom1.elements[i])) {
							retflag = false;
							dom1.elements[i].focus();
						}
					} else if(dom1.elements[i].id=="Email") {
						if(!checkEmail(dom1.elements[i])) {
							retflag = false;
							dom1.elements[i].focus();
						}
					} else {
						if(!checkFormItem(dom1.elements[i])) {
							retflag = false;
							dom1.elements[i].focus();
						}
					}
				}
			}catch(e){}
		}
	} else if(dom1.tagName=="INPUT" || dom1.tagName=="TEXTAREA") {
		if(dom1.value=="") {
			dom1.className = "RequiredField";
			retflag = false;
		}
		else {
			dom1.className = "";
		}
	} else if(dom1.tagName=="SELECT") {
		if(dom1.selectedIndex==0) {
			dom1.className = "RequiredField";
			retflag = false;
		}
		else {
			dom1.className = "";
		}
	}
	return retflag;
}
function checkEmail(dom1, lang)
{
	var retflag = true;
	var str = dom1.value;
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1) retflag = false;
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr) retflag = false;
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr) retflag = false;
	if (str.indexOf(at,(lat+1))!=-1) retflag = false;
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot) retflag = false;
	if (str.indexOf(dot,(lat+2))==-1) retflag = false;
	if (str.indexOf(" ")!=-1) retflag = false;
	if(retflag)
		dom1.className = "";
	else
		if(lang == 'en'){
			alert('Please enter the corect format mail');			
		} else {
			alert('لطفا');
		}
		dom1.className = "RequiredField";
	return retflag;
}

function checkFormPassword(dom1, dom2)
{
	var retflag = true;
	if(checkFormItem(dom2)) {
		if(dom1.value==dom2.value){
			dom2.className = "";
		} else {
			dom2.className = "RequiredField";
			retflag = false;
		}
	} else {
		retflag = false;
	}
	return retflag;
}
function CheckForm(sForm){
	var RET = true;
	if (sForm.fld_username.value.length < 3){
		sForm.fld_username.className="RedInput";
		RET = false;
	} else {	
		sForm.fld_username.className="input";
	}

	if (sForm.fld_Tel.value.length < 7){
		sForm.fld_Tel.className="RedInput";
		RET = false;
	}
	else	
		sForm.fld_Tel.className="input";

	var Rg = /\w+@\w+\.\w+/;
	if (!Rg.test(sForm.fld_Email.value)){
		sForm.fld_Email.className="RedInput";
		RET = false;
	} else {	
		sForm.fld_Email.className="input";
	}
	if (sForm.fld_name.value.length < 3){
		sForm.fld_name.className="RedInput";
		RET = false;
	} else {	
		sForm.fld_name.className="input";
	}	
	
	if (sForm.fld_Password.value.length < 3){
		sForm.fld_Password.className="RedInput";
		RET = false;
	} else {	
		sForm.fld_Password.className="input";
	}	
	
	if (sForm.fld_Password.value != sForm.fld_confirm.value){
		sForm.fld_Password.className="RedInput";
		sForm.fld_confirm.className="RedInput";
		RET = false;
	} else {	
		sForm.fld_confirm.className="input";
	}
	if (sForm.fld_Position.value.length < 3){
		sForm.fld_Position.className="RedInput";
		RET = false;
	} else {	
		sForm.fld_Position.className="input";
	}
	if (sForm.fld_Degree.value.length < 3){
		sForm.fld_Degree.className="RedInput";
		RET = false;
	} else {	
		sForm.fld_Degree.className="input";
	}
	if (sForm.fld_family.value.length < 3){
		sForm.fld_family.className="RedInput";
		RET = false;
	} else {	
		sForm.fld_family.className="input";
	}	
	if(!RET){
		alert('لطفاً فيلدهايی که با رنگ قرمز مشخص شده اند را بطور صحيح پر نمائيد.');
	}
	return RET;
}
function duplicateRow(classname)
{
    //clone the row
	var obj = $$('.'+classname);
	if(!obj) alert('error');
	obj = $(obj[obj.length-1]);
	var baby = obj.clone();
    
    //reset values
        //set name and ids
    cnt = 1;
	$$('.'+classname).each(function(el){
		el.lang = cnt;
        el.getElementsBySelector('SELECT, INPUT, TEXTAREA').each(function(elp){
            elp.name = elp.name.replace(/\[row\d+\]/, '[row'+cnt+']');
            elp.id = elp.name;
        }); 
        el.id = 'reg_'+cnt;
		cnt++;
    });
	
	baby.id = 'reg_'+cnt;
	baby.getElementsBySelector('SELECT, INPUT, TEXTAREA').each(function(el){
		el.name = el.name.replace(/\[row\d+\]/, '[row'+cnt+']');
		el.id = el.name;
		switch(el.tagName){
			case 'SELECT':
				el.selectedIndex = 0;
				break;
			case 'TEXTAREA':
				el.value = null;
				break;
			case 'INPUT':
				if(el.type=='text') el.value = '';
				if(el.type=='checkbox') el.checked = false;
				if(el.type=='hidden' && el.hasClass('reset')) el.value = '';
				if(el.type=='file') el.value = '';
				break;
		}
	}); 
	
	if(baby.getElementsBySelector('.imagebox')) {
		baby.getElementsBySelector('.imagebox').each(function(el){
			el.src = '../images/blank.gif';											 
		});
	}
	
	baby.removeClass('hidden');
	
	//baby.getElementsBySelector('.removeroute')[0].addClass('hidden');
	//baby.getElementsBySelector('.delete')[0].removeClass('hidden');
	//---
    baby.injectAfter(obj);
	
	normalizeRows(classname);   
}

function removeRow(obj,className)
{
	var parent = findParent(obj,className);
	parent.remove();
	
	normalizeRows(className);
}

function normalizeRows(classname)
{
	var cnt = 0;
	
	var rows = $$('.'+classname);
	var rowscount = rows.length;
	
	rows.each(function(el){
		cnt++;
		el.getElementsBySelector('.addBut, .remBut').each(function(elp){
			if(elp.hasClass('addBut')){
				if(cnt<rowscount)
					elp.addClass('invisible');
				else
					elp.removeClass('invisible');
			}else if(elp.hasClass('remBut')){
				if(rowscount<=1)
					elp.addClass('invisible');
				else
					elp.removeClass('invisible');
			}
		});
	});
}
function findParent(obj,className)
{
	if($(obj))
		obj=$(obj);
	else
		return false;
	
	while(!obj.getParent().hasClass(className)){
		obj = obj.getParent();
	}
	
	return obj.getParent();
}
function setHeight(){
	var hrbox = $('rightBox').getSize().size.y;
	var hlbox = $('leftBox').getSize().size.y;
	if(hrbox > hlbox){
		$('filler').setStyle('height', (hrbox-hlbox)+'px');
	}
}


function setLoading(obj,size,style)
{
	if(!$(obj))
		return;
		
	if(typeof(size)=='number')
		height = size+'px';
	else
		height = 'auto';
		
	style = (typeof(style)=='undefined')? '' : style;
		
	if(typeof(size)=='undefined' || typeof(size)=='number')
		size = 'large';
		
	var iconHTML = '<img src="/images/loading2.gif" alt="" border="0" />';
	var message = ((lang=='en')? "Please Wait" : "لطفاً صبر کنيد");
		
	switch(size){
		case 'large':
			loadhtml= '<table border="0" cellpadding="0" cellspacing="0" width="100px" style="height:'+height+';margin:0 auto;'+style+'">'+
						  //'<tr><td><br /><br /></td></tr>'+
						  '<tr>'+
							'<td style="border:0px;white-space:nowrap;">'+message+'</td>'+
							'<td style="border:0px">'+iconHTML+'</td>'+
						  '</tr>'+
						  //'<tr><td><br /><br /></td></tr>'+
						'</table>';
			break;
			
		case 'oneline':
			loadhtml = iconHTML+'&nbsp;لطفا صبر کنید';
			break;
		
		case 'icon':
			loadhtml = iconHTML;
			break;
	};
	
	$(obj).innerHTML = loadhtml;
}

function changeGalleryImage(id)
{
	$('galleryLarge').src = $('galleryLarge').src.replace(/pic=\d+/i,'pic='+id);
	$('galleryImageTitle').innerHTML = images[id];
}
function galleryMove(dir)
{
	var count = $('galleryListSlide').count;
	var current = $('galleryListSlide').current;
	var eachSize = $('galleryListSlide').eachSize;
	var eachPage = $('galleryListSlide').eachPage;
	
	if( (dir>0&&current>=0) || ( dir<0 && (current*-1)>=(count-eachPage) ))
		return;
		
	$('galleryListSlide').current += dir;
		
	console.log( $('galleryListSlide').fx );
	$('galleryListSlide').fx.start( $('galleryListSlide').current * eachSize );
}
function changeGallery(id)
{
	var url = 'index.php?section=guest&module=gallery&cmd=detail&gallerygroupid='+id+'&lang='+lang;
	new ajax(url, {update:'galleryHolder',loading:null}).request();
	setLoading('galleryHolder',200,'width:200px;');
}
function delImage(id)
{
	var conf = confirm('Are you Sure to Delete This Picture?');
	if(!conf) return;
		new ajax('index.php?section='+section+'&module='+module+'&cmd=delimage&pid='+id).request();
}
