
function MoveOptions( IdFrom, IdTo, Action ){	
	
	var FromSelect = document.getElementById(IdFrom);
	var ToSelect = document.getElementById(IdTo);
	
	var ToRemoveArray = new Array();
	var FromRemoveArray = new Array();
	
	var num = 0;
	
	if( Action=="reset" ){
		
		for( var r = ToSelect.options.length-1; r >= 0; r-- ){
			
			var TheOption = ToSelect.options[r];			
			var OptioniK = document.createElement('option');
			
			OptioniK.text = TheOption.text;
			OptioniK.value = TheOption.value;
			
			try {
			
				FromSelect.add(OptioniK, null);
			}
			catch(ex) {
				
				FromSelect.add(OptioniK);
			}
			
			ToRemoveArray[num] = TheOption;
			num ++; 
		}
	}
	
	if( Action=="delete" ){
		
		for( var r = ToSelect.options.length-1; r >= 0; r-- ){
				
			var TheOption = ToSelect.options[r];
			
			if( TheOption.selected ){	
				
				var OptioniK = document.createElement('option');
				
				OptioniK.text = TheOption.text;
				OptioniK.value = TheOption.value;
				
				try {
				
					FromSelect.add(OptioniK, null);
				}
				catch(ex) {
					
					FromSelect.add(OptioniK);
				}			
				
				ToRemoveArray[num] = TheOption;	
				num ++; 
			}	
		}
	}
	
	if( Action=="add" ){
		
		for( var r = FromSelect.options.length-1; r >= 0; r-- ){
				
			var TheOption = FromSelect.options[r];
			
			if( TheOption.selected ){
				
				var OptioniK = document.createElement('option');
				
				OptioniK.text = TheOption.text;
				OptioniK.value = TheOption.value;
				
				try {
				
					ToSelect.add(OptioniK, null);
				}
				catch(ex) {
					
					ToSelect.add(OptioniK);
				}
				
				OptioniK.selected = true;				
				
				FromRemoveArray[num] = TheOption;	
				num ++; 	
			}
		}
	}	
	
	
	for( var i=0; i<FromRemoveArray.length; i++ ){
		
		FromSelect.remove(FromRemoveArray[i]);	
	}
	
	for( var i=0; i<ToRemoveArray.length; i++ ){
		
		ToSelect.remove(ToRemoveArray[i]);	
	}
}

function AppMailAddressShowHide(){
	
	TheCheck = document.getElementById('app_send_mail_chechbox');
	TheMailInput = document.getElementById('mail_address_input');
	
	if( TheCheck.checked == true ){
		
		TheMailInput.disabled = false;
	}
	else{
		
		TheMailInput.disabled = true;
	}
}

function AppFieldsFeatures( num ){	
	
	var Name = document.getElementById("f_name_" + num);
	var NameDisplay = document.getElementById("span_f_name_" + num);
	
	var Type = document.getElementById("f_type_" + num);
	var TypeDisplay = document.getElementById("span_f_type_" + num);
	
	var ContentType = document.getElementById("f_content_type_" + num);
	var ContentTypeDisplay = document.getElementById("span_f_content_type_" + num);
	
	var Required = document.getElementById("f_required_" + num);
	var RequiredDisplay = document.getElementById("span_f_required_" + num);
	
	var Numeric = document.getElementById("f_numeric_" + num);
	var NumericDisplay = document.getElementById("span_f_numeric_" + num);
	
	var Group = document.getElementById("f_group_" + num);
	var GroupDisplay = document.getElementById("span_f_group_" + num);
	
	var Step = document.getElementById("f_step_" + num);
	var StepDisplay = document.getElementById("span_f_step_" + num);	
	
	var ImageWidth = document.getElementById("f_image_width_" + num);
	var ImageWidthDisplay = document.getElementById("span_f_image_width_" + num);
	
	var CheckboxInSearch = document.getElementById("f_checkbox_in_search_" + num);
	var CheckboxInSearchDisplay = document.getElementById("span_f_checkbox_in_search_" + num);
	
	var MoveOptionsSearch = document.getElementById("f_move_options_search_" + num);
	var MoveOptionsSearchDisplay = document.getElementById("span_f_move_options_search_" + num);
	
	
	var ShowInListing = document.getElementById("f_show_in_listing_" + num);
	var ShowInListingDisplay = document.getElementById("span_f_show_in_listing_" + num);
	
	var ShowInFull = document.getElementById("f_show_in_full_" + num);
	var ShowInFullDisplay = document.getElementById("span_f_show_in_full_" + num);
	
	var ShowInSearch = document.getElementById("f_show_in_search_" + num);
	var ShowInSearchDisplay = document.getElementById("span_f_show_in_search_" + num);
	
	var ShowInAdvSearch = document.getElementById("f_show_in_adv_search_" + num);
	var ShowInAdvSearchDisplay = document.getElementById("span_f_show_in_adv_search_" + num);
	
	var MultySearch = document.getElementById("f_multy_select_search_" + num);
	var MultySearchDisplay = document.getElementById("span_f_multy_select_search_" + num);
	
	var LikeSearch = document.getElementById("f_like_method_search_" + num);
	var LikeSearchDisplay = document.getElementById("span_f_like_method_search_" + num);
	
	var RadioSearch = document.getElementById("f_radio_in_search_" + num);
	var RadioSearchDisplay = document.getElementById("span_f_radio_in_search_" + num);
	
	var MaxSimbols = document.getElementById("f_max_simbols_" + num);
	var MaxSimbolsDisplay = document.getElementById("span_f_max_simbols_" + num);
	
	var MaxShortSimbols = document.getElementById("f_max_short_simbols_" + num);
	var MaxShortSimbolsDisplay = document.getElementById("span_f_max_short_simbols_" + num);
	
	var SqlFieldType = document.getElementById("f_sql_field_type_" + num);
	var SqlFieldTypeDisplay = document.getElementById("span_f_sql_field_type_" + num);

	var RegExp = document.getElementById("f_regexp_" + num);
	var RegExpDisplay = document.getElementById("span_f_regexp_" + num);
	
	var FromToDisplay = document.getElementById("span_f_from_to_" + num);
	
	var FileContentTypesDisplay = document.getElementById("span_f_file_content_types_" + num);
	
	var VertualField = document.getElementById("f_vertual_" + num);
	
	var ConditionDisplay = document.getElementById("span_f_condition_" + num);
	
	
	if( VertualField.checked == true ){
		
		ShowInListingDisplay.style.display = "none";
		ShowInFullDisplay.style.display = "none";
		ConditionDisplay.style.display = "";
	}
	else{
		
		ShowInListingDisplay.style.display = "";
		ShowInFullDisplay.style.display = "";
		ConditionDisplay.style.display = "none";
	}
	
	
	if( (Type.value==1 || Type.value==2) && ContentType.value==0 ){
		
		FromToDisplay.style.display = "";
	}
	else{
		
		FromToDisplay.style.display = "none";
	}
	
	if( (Type.value==1 || Type.value==2 || Type.value==3) && CheckboxInSearch.checked==false ){
		
		MultySearchDisplay.style.display = "";
	}
	else{
		
		MultySearch.checked = false;
		MultySearchDisplay.style.display = "none";
	}
	
	
	if( Type.value==0 || Type.value==5 ){		
		
		LikeSearchDisplay.style.display = "";
	}
	else{
		
		LikeSearchDisplay.style.display = "none";
	}
	
	
	if( Type.value==5 && Numeric.value==0 ){		
		
		SqlFieldTypeDisplay.style.display = "";
	}
	else{
		
		SqlFieldTypeDisplay.style.display = "none";
	}
	
	
	if( Type.value==0 || Type.value==5 || Type.value==6 || Type.value==8 ){
		
		MaxSimbolsDisplay.style.display = "";		
	}
	else{
		
		MaxSimbolsDisplay.style.display = "none";		
	}
	
	
	if( Type.value==5 ){		
		
		MaxShortSimbolsDisplay.style.display = "";
	}
	else{		
		
		MaxShortSimbolsDisplay.style.display = "none";
	}
		
	
	if( Type.value==7 || (Type.value==4 && ContentType.value==0)  ){
		
		RadioSearchDisplay.style.display = "";
	}
	else{
		
		RadioSearchDisplay.style.display = "none";
	}
	
	if( Type.value==7 ){
		
		FileContentTypesDisplay.style.display = "";
	}
	else{
		
		FileContentTypesDisplay.style.display = "none";
	}
	
	if( Type.value==7 ){
		
		ImageWidthDisplay.style.display = "";
	}
	else{
		
		ImageWidthDisplay.style.display = "none";
	}
	
	if( Type.value==0 || Type.value==5 || Type.value==6 || Type.value==7 || Type.value==8 || Type.value==9 ){
		
		ContentType.value = 0;
		ContentType.disabled = true;
	}
	else{

		ContentType.disabled = false;
	}
	
	
	if( Type.value==0 ){
		
		NumericDisplay.style.display = "";		
	}
	else{

		NumericDisplay.style.display = "none";
	}
	
	
	if( Type.value==0 || Type.value==5 ){
		
		RegExpDisplay.style.display = "";		
	}
	else{

		RegExpDisplay.style.display = "none";
	}
	
	
	if( (Type.value==1 || Type.value==2) && MultySearch.checked == false ){
		
		CheckboxInSearchDisplay.style.display = "";
	}
	else{
		
		CheckboxInSearch.checked = false;
		CheckboxInSearchDisplay.style.display = "none";
	}
	
	
	if( MultySearch.checked == true ){
		
		MoveOptionsSearchDisplay.style.display = "";
	}
	else{
		
		MoveOptionsSearch.checked = false;
		MoveOptionsSearchDisplay.style.display = "none";
	}
	
	
	
	if( Group.value!=0 ){
		
		Step.value = 0;
		Step.disabled = true;
	}
	else{

		Step.disabled = false;
	}
	
}

function ShowHideVisibility( id ){
	
	if( document.getElementById(id).style.visibility == "visible" ){
		
		document.getElementById(id).style.visibility = "visible";
	}
	else{
		
		document.getElementById(id).style.visibility = "hidden";
	}
}

function ShowHide(id){
	
	if( document.getElementById(id).style.display == "none" ){
		
		document.getElementById(id).style.display = "";
	}
	else{
		
		document.getElementById(id).style.display = "none";
	}
}

function AppTab( ViewId ){
	
	document.getElementById('app_div_general').style.display = "none";
	document.getElementById('app_td_general').className = "lang_menu_passive";
	
	document.getElementById('app_div_fields').style.display = "none";
	document.getElementById('app_td_fields').className = "lang_menu_passive";
	
	document.getElementById('app_div_templates').style.display = "none";
	document.getElementById('app_td_templates').className = "lang_menu_passive";
	
	document.getElementById('app_div_groups').style.display = "none";
	document.getElementById('app_td_groups').className = "lang_menu_passive";
	
	document.getElementById('app_div_steps').style.display = "none";
	document.getElementById('app_td_steps').className = "lang_menu_passive";
	
	/*document.getElementById('app_div_regexp').style.display = "none";
	document.getElementById('app_td_regexp').className = "lang_menu_passive";*/
	
	document.getElementById('app_div_view').style.display = "none";
	document.getElementById('app_td_view').className = "lang_menu_passive";
	
	
	
	document.getElementById('app_div_' + ViewId ).style.display = "block";
	document.getElementById('app_td_' + ViewId ).className = "lang_menu_active";
}

function ShowHidePagerTable( id, num ){
	
	if( document.getElementById(id).style.display == "none" ){
		
		document.getElementById(id).style.display = "block";
		document.getElementById("limit_" + num).value = "";		
		document.getElementById("limit_" + num).readOnly = true;	
	}
	else{
		
		document.getElementById(id).style.display = "none";
		document.getElementById("limit_" + num).readOnly = false;
		document.getElementById("pager_" + num).value = "";			
	}
}

function ShowLoading(){
	
	//document.getElementById("loading_div").style.display = "block";
}

function TypeLangs(num){
	
	if( document.getElementById('lang_table_' + num).style.display == "none" ){
		
		document.getElementById('lang_table_' + num).style.display = "";
	}
	else{
		
		document.getElementById('lang_table_' + num).style.display = "none";
	}
}

function UpdateImageHiddnes(){
	
	var id = document.getElementById('this_image_id').value;
	var LangsNum = document.getElementById("lang_num_id").value;
	
	for( i=0; i<LangsNum; i++ ){
		
		document.getElementById('head_' + id +'_' + i).value = document.getElementById('img_desc_head_' + i).value;		
		document.getElementById('img_desc_textarea_' + id +'_' + i).value = document.getElementById('img_desc_textarea_' + i).value;		
	}
}

function OpenImageDescription(id, TopPx){		
	
	var LangsNum = document.getElementById("lang_num_id").value;
	
	document.getElementById('this_image_id').value = id;
	document.getElementById('OpenPageEdit').className = 'show_div';	
	
	document.getElementById('OpenPageEdit').style.top = TopPx;	
	
	for( i=0; i<LangsNum; i++ ){
		
		document.getElementById('img_desc_head_' + i).value = document.getElementById('head_' + id +'_' + i).value;
		document.getElementById('img_desc_textarea_' + i).value = document.getElementById('img_desc_textarea_' + id +'_' + i).value;	
	}
}

function OpenContentLang(L){
	
	var LangsNum = document.getElementById("lang_num_id").value;
	
	for( i=0; i<LangsNum; i++ ){
		
		document.getElementById("lang_content_td_" + i).className = "lang_menu_passive";
		document.getElementById("content_div_" + i).className = "hidden_div";
	}
		
	document.getElementById("lang_content_td_" + L).className = "lang_menu_active";	
	document.getElementById("content_div_" + L).className = "show_div";		
}


function ImageDescriptionLangChanger(ImageId, L){
	
	var LangsNum = document.getElementById("langs_num").value;
	
	for(i=0; i<LangsNum; i++){
		
		document.getElementById("image_descritpion_lang_menu_" + ImageId + "_" + i).className = "lang_menu_passive";
		document.getElementById("image_desc_div_" + ImageId + "_" + i).className = "hidden_div";
	}
		
	document.getElementById("image_descritpion_lang_menu_" + ImageId + "_" + L).className = "lang_menu_active";	
	document.getElementById("image_desc_div_" + ImageId + "_" + L).className = "show_div";
	document.getElementById("img_desc_textarea_" + ImageId + "_" + L).style.width = 900;
}



function open_div(id){
	
	document.getElementById(id).className='show_div';
}
function close_div(id){
	
	document.getElementById(id).className='hidden_div';
}

function change_color(i){	
	
	if(document.getElementById("sel_"+i).checked == true){
		
		document.getElementById("tr_"+i).style.backgroundColor="#DDDDDD";
	}
	else{
		
		document.getElementById("tr_"+i).style.backgroundColor="#FFFFFF";
	}

}

function DeleteTemplate(template, content_type, id){
	
	input_box=confirm("Do you want to delete this template (" + template + ") ?");
		
	if(input_box==true){
		
		document.location="template_admin/del_template.php?template=" + template + "&content_type=" + content_type + "&id=" + id;
	}	
}

function det_del(form_action){
	
	input_box=confirm("Do you want to delete this item?");
		
	if( input_box==true ){
		
		document.getElementById('edit_form').action = form_action;
		document.getElementById('edit_form').submit();
	}	
}

function detect_delete(t){
	
	var num=document.getElementById("js_num").value;
	var fishka=0;
	
	for( var j=1; j<=num; j++ ){
			
		if(document.getElementById("sel_"+j).checked==true){
			
			fishka=1;
		}
	}
	
	if( fishka==0 ){
		
		document.edit_form.action='javascript:void(0)'
		alert("You must select any item.");
	}
	
	else{
		
		input_box=confirm("Do you want to delete this items?");
		
		if( input_box==true ){
			
			document.edit_form.action= t+'&edit_type=delete';
		}
		else{
		 	
		 	document.edit_form.action='javascript:void(0)'
		}
	}
}

function apply(id, tab){
	
	
	var tdArray = document.getElementsByTagName("td");
	
	
	for(i=0; i < tdArray.length; i++){
		
		if( tdArray[i].className == "tabcurrent" ){
			
			tab = tdArray[i].id.substr(5,3);			
		}			
	}
	
	document.getElementById(id).action = document.getElementById(id).action + '&apply=' + tab;
	document.getElementById(id).submit();
}


function ClearDivBugs(){
	
	var DivArray = document.getElementsByTagName("div");
	
	for( i=0; i < DivArray.length; i++ ){
		
		if( DivArray[i].style.visibility == "hidden" ){
			
			DivArray[i].style.display = "none";	
		}
	}
}


function FormManage( form_id, act_type ){	
	
	if( act_type == "delete" ){
		
		input_box=confirm("Are you sure you want to delete?");
		
		if(input_box==true){
			
			document.getElementById(form_id).action = document.getElementById(form_id).action + '&action=' + act_type;
			document.getElementById(form_id).submit();
		}
		else{
		 	
		 	document.edit_form.action='javascript:void(0)';
		}
	}
	else{
		
		document.getElementById(form_id).action = document.getElementById(form_id).action + '&action=' + act_type;
		document.getElementById(form_id).submit();
	}
	
}

function PageActionDiv(id){
	
	if(document.getElementById('page_action_' + id).style.display=="none"){
		
		document.getElementById('page_action_' + id).style.display = "block";
	}
	else{
		
		document.getElementById('page_action_' + id).style.display = "none";
	}
}

function DelPage(id){
	
	input_box=confirm("Do you want to delete this page (Id=" + id + ") ?");
		
	if( input_box == true ){
		
		document.location = 'page_admin/del_page.php?id=' + id;
	}	
}

function DeleteItem(URL){
	
	input_box = confirm("Do you want to delete this item?");
		
	if( input_box == true ){
		
		document.location = URL;
	}	
}

function ValidChars(e, goods) {
	
	var key, keychar;
	key = (window.event) ? window.event.keyCode : ((e) ? e.which : null);
	if (key == null) return true;
 
	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();
	goods = goods.toLowerCase();
 
	if (goods.indexOf(keychar) != -1)
		return true;
 
	if (key==null || key==0 || key==8 || key==9 || key==13 || key==27)
		return true;
 
	return false;
}

	


function tabOpen(ViewTab){		
	
	var tdArray = document.getElementsByTagName("td");
	var divArray = document.getElementsByTagName("div");
	
	for(i=0; i < tdArray.length; i++){
		
		if( tdArray[i].id == "open_" + ViewTab ){
			
			tdArray[i].className = "tabcurrent";			
		}		
		if( tdArray[i].id != "open_" + ViewTab && tdArray[i].id.substr(0,5) == "open_"){
			
			tdArray[i].className = "taboff";			
		}
	}
	
	for( i=0; i < divArray.length; i++ ){
		
		if( divArray[i].id.substr(0,8) == "open_" + ViewTab ){
			
			//divArray[i].style.visibility = "visible";
			divArray[i].style.display = "";
						
		}		
		if( divArray[i].id.substr(0,8) != "open_" + ViewTab && divArray[i].id.substr(0,5) == "open_" ){
			
			//divArray[i].style.visibility = "hidden";
			divArray[i].style.display = "none";	
						
		}
	}
}

function RemoveGroupInForm( DNM_ObjectPart, RecordId, GroupId, DNM ){
	
	var DNM_Object = document.getElementById("dnm_object_" + DNM_ObjectPart);	
	DNM_Object.parentNode.removeChild(DNM_Object);	
	
	var DelRecs = document.getElementById("deleted_records_" + GroupId);
	DelRecs.value = DelRecs.value + RecordId + ";";
	
	var DelDNM = document.getElementById("deleted_dnm_" + GroupId);
	DelDNM.value = DelDNM.value + DNM + ";";	
}

function AddGroupInForm( GroupId, HTML64 ){
	
	var TD = document.getElementById("app_group_dinamic_" + GroupId);
	var DNM_num = document.getElementById("dnm_count_" + GroupId);
	
	var NowNum = parseInt(parseInt(DNM_num.value) + 1);
	
	DNM_num.value = NowNum;
	
	var InsertedHTML = decodeBase64(document.getElementById(GroupId + "_64string").value);
	
	InsertedHTML = str_replace("[$]", NowNum, InsertedHTML);
	
	TD.innerHTML = TD.innerHTML + InsertedHTML;
}


function is_array( mixed_var ){
	
    // http://kevin.vanzonneveld.net
    // http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_is_array/
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Legaev Andrey
    // +   bugfixed by: Cord
    // *     example 1: is_array(['Kevin', 'van', 'Zonneveld']);
    // *     returns 1: true
    // *     example 2: is_array('Kevin van Zonneveld');
    // *     returns 2: false
 
    return ( mixed_var instanceof Array );
}

function str_replace(search, replace, subject) {
    
    var f = search, r = replace, s = subject;
    var ra = is_array(r), sa = is_array(s), f = [].concat(f), r = [].concat(r), i = (s = [].concat(s)).length;
 
    while(j = 0, i--){
        while(s[i] = s[i].split(f[j]).join(ra ? r[j] || "" : r[0]), ++j in f);
    }
     
    return sa ? s : s[0];
}

function HideImagesInPrintVersion(){
	
	var ImagesArray = document.getElementsByTagName("img");	
	
	for( i=0; i < ImagesArray.length; i++ ){	
		
		var TheImage = ImagesArray[i];
		var TheImageId = TheImage.id;
		
		if( TheImageId.search("in_print_show") == -1 ){
			
			TheImage.style.display = "none";
		}
	}
}


function IsEmailAddress(mail){
	
	var addressPattern = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
	return addressPattern.test(mail);
}

function isPhoneNumber(phone){
	
	var detect;
	var CharArray = new  Array(' ', '(', ')', '+', '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
	
	for( var j=0; j < phone.length; j++ ){
		
		var PhoneChar = phone.substring( j, j+1 );
		
		detect = false;
		
		for( var z=0; z < CharArray.length; z++ ){
			
			if( PhoneChar == CharArray[z] ){
				
				detect = true;
			} 
		}
		
		if(detect == false){
			
			break;
		}
	}
	
	if(phone.length<5){
		
		detect = false;
	}
	
	return detect;
}
