/*
* $Id: functions.js,v 1.17 2005/10/28 08:32:05 razvan.stanga Exp $
*/

_browser = getBrowser ();

function confirmSubmit (msg) {
	var agree=confirm(msg);
	if (agree) {
		return true ;
	} else {
		return false ;
	}
}

function is_empty (str) {
    return str.search("^[ \t\n\r]*$")>-1 ? true : false;
}

function is_int (str) {
    return str.search("^[0-9]*$")>-1 ? true : false;
}

function validField (str, msg) {
    if ( is_empty(str) ) {
		alert (msg);
		return false;
    }
    return true;
}

function multipleSelect ( arr, f, field ) {

    eval ('var val = document.forms.'+f+'.'+field+'.length');
	for ( j=0 ; j < val ; j++ ) {
	    if ( arr == 'all' ) {
	    	eval ('document.forms.'+f+'.'+field+'[j].selected = true;');
	    } else {
	        eval ('document.forms.'+f+'.'+field+'[j].selected = false;');
	    }
	}
	if ( arr == 'all' ) {
	    return "";
	}

	var b = arr.split (',');
	for ( i=0 ; i < b.length ; i++ ) {
	    for ( j=0 ; j < val ; j++ ) {
	        if ( b[i] == eval ('document.forms.'+f+'.'+field+'[j].value') ) {
	    		eval ('document.forms.'+f+'.'+field+'[j].selected = true');
	        }
	    }
	}
}

function setValue (field, f, val) {
	eval ("document.forms."+f+"."+field+".value='"+val+"'");
}

function getLength (field, f) {
	x = eval ("document.forms."+f+"."+field+".length");
	return x;
}

function selectOption (field, f ,i) {
	eval ("document.forms."+f+"."+field+"["+i+"].selected=true;");
}

function getValue (field, f) {
	eval ("var x = document.forms."+f+"."+field+".value");
	return x;
}

function getOption (n, f, o) {
	var selOp = eval ('document.forms.'+f+'.'+n+';');
	if ( o == 't' ) {
		return selOp.options[selOp.selectedIndex].text;
	} else {
     	return selOp.options[selOp.selectedIndex].value;
   	}
}

function getOptionIndex (n, f, v, o) {
	var selOp = eval ('document.forms.'+f+'.'+n+';');
	if ( o == 't' ) {
		return selOp.options[v].text;
	} else {
     	return selOp.options[v].value;
   	}
}

function doSubmit ( f ) {
	eval ('document.forms.'+f+'.submit ();');
}

function checkboxAll (field, f, act, s, e) {
	for ( i=s ; i < e ; i++ ) {
	    if ( act == 'c' ) {
	    	eval ('document.forms.'+f+'.'+field+'['+i+'].checked = true;');
	    } else if ( act == 'u' ) {
	    	eval ('document.forms.'+f+'.'+field+'['+i+'].checked = false;');
	    }
	}
}

function inputAll (field, f, val, s, e) {
	for ( i=s ; i < e ; i++ ) {
    	eval ('document.forms.'+f+'.'+field+'['+i+'].value = "'+val+'";');
	}
}

function checkBox (f, field, m) {

	var checkbox = 	eval ('document.forms.'+f+'.'+field);
	var len = checkbox.length;

	var j = 0;
	for ( i=0 ; i < len ; i++ ) {
	    if ( checkbox[i].checked == true ) {
			j++;
			if ( j > m ) {
			    checkbox[i].checked = false;
			    alert ("You can't select more then "+m+" options");
			    return false;
			}
	    }
	}
}

function addOption (n, f, t, v) {
	var selOp = eval ('document.forms.'+f+'.'+n+'');
	var len = selOp.options.length;
	selOp.options[len] = new Option (t, v);
	selOp[len].selected = true;
}

function removeOption (n, f, op) {
	var selOp = eval ('document.forms.'+f+'.'+n+'');
	for ( i=0;i<selOp.length;i++ ) {
		if ( i == op ) {
			selOp[i] = null;
			break;
		}
	}
}

function checkCookie () {

var acceptsCookies = false;
if(document.cookie == '') {
    document.cookie = 'acceptsCookies=yes';
    if(document.cookie.indexOf('acceptsCookies=yes') != -1) {
	acceptsCookies = true;
    }
    return acceptsCookies;
} else {
  acceptsCookies = true;
  return acceptsCookies;
}
}


function setCookie (name, value, hours, path, domain, secure) {
    if ( checkCookie () == true ) {
        name = 'b'+name;
	var not_NN2 = (navigator && navigator.appName
		       && (navigator.appName == 'Netscape')
		       && navigator.appVersion
		       && (parseInt(navigator.appVersion) == 2))?false:true;

	if(hours && not_NN2) {
	    if ( (typeof(hours) == 'string') && Date.parse(hours) ) {
		var numHours = hours;
	    } else if (typeof(hours) == 'number') {
		var numHours = (new Date((new Date()).getTime() + hours*3600000)).toGMTString();
	    }
	}
	document.cookie = name + '=' + escape(value) + ((numHours)?(';expires=' + numHours):'') + ((path)?';path=' + path:'') + ((domain)?';domain=' + domain:'') + ((secure && (secure == true))?'; secure':'');
    }
}


function getCookie(name) {
    if(document.cookie == '') {
		return false;
    } else {
		var firstChar, lastChar;
		var theBigCookie = document.cookie;
		firstChar = theBigCookie.indexOf(name);
		var NN2Hack = firstChar + name.length;
		if((firstChar != -1) && (theBigCookie.charAt(NN2Hack) == '=')) {
	    	firstChar += name.length + 1;
	    	lastChar = theBigCookie.indexOf(';', firstChar);
	    	if(lastChar == -1) lastChar = theBigCookie.length;
	    	return unescape(theBigCookie.substring(firstChar, lastChar));
		} else {
	    	return false;
		}
    }
}

function writeToLayer (l, txt, mode) {
	try {
		if (document.layers) {
			eval ( "var lay = document.layers."+l+"" );
			if ( mode == 1 ) {
				lay.innerHTML = txt;
			} else {
				lay.innerHTML += txt;
			}
		} else if (document.all) {
			eval ( "var lay = document.all."+l+"" );
			if ( mode == 1 ) {
				lay.innerHTML = txt;
			} else {
				lay.innerHTML += txt;
			}
		} else {
			var lay = document.getElementById (l);
			if ( mode == 1 ) {
				lay.innerHTML = txt;
			} else {
				lay.innerHTML += txt;
			}
   		}
   	}

   	catch (ex) {

   	}
}

function getFromLayer (l) {

	if (document.layers) {
		eval ( "var lay = document.layers."+l+";" );
		return lay.innerHTML;
	} else if (document.all) {
		eval ( "var lay = document.all."+l+";" );
		return lay.innerHTML;
	} else {
		var lay = document.getElementById (l);
		return lay.innerHTML;
   	}
}

function getBrowser () {
	var browserName = navigator.appName;
	if ( browserName.search ('Internet Explorer') != -1  ) {
		return 'Internet Explorer';
	} else if ( browserName.search ('Netscape') != -1 ) {
        return 'Netscape';
	} else if ( browserName.search ('Opera') != -1 ) {
        return 'Opera';
	} else if ( browserName.search ('Firefox') != -1 ) {
        return 'Firefox';
	} else {
		return 'Other';
	}
}

function setVisibility (n, act) {
	try {
		if ( _browser == 'Internet Explorer' ) {
        	var selOp = eval ("document.all.div_"+n+"");
		} else {
        	var selOp = eval ("document.getElementById ('div_"+n+"');");
		}

		if ( act == 't' ) {
       		selOp.style.display='';
		} else if ( act == 'f' ) {
			selOp.style.display='none';
		}
	}
	catch (ex) {
	    //alert (ex);
	}
}

function toNumber ( nr ) {
	return parseFloat ( nr );
}

function addBR ( field, f ) {
	
	txt = getValue (field, f);
	i = 1;
	while ( txt.search ('[:::]') != -1 ) {
		txt = txt.replace ("[:::]", '\r\n');
		i++;
		if ( i >= 150 ) {
			break;
		}
	}
	setValue (field, f, txt);
}

function doOpenPopup (url, wid, hei, n, admin) {
  	//var greybox_anim = new GreyBox();
  	//greybox_anim.setCenterWindow(false);
  	//greybox_anim.setDimension(800, 600);
	//GB_show ('sweblog.net', url, 600, 800);
	//greybox_anim.setImageDir (siteurl+"styles/common/javascript/greybox/");
	//GB_showFullScreen('sweblog.net', url);
	//GB_show('sweblog.net', url, 800, 600);
	admin = parseFloat (admin);
	if ( admin == 0 || isNaN (admin) ) { // greybox
		GB_showFullScreen('sweblog.net', url+'#photo');
	} else { // normal popup
		if ( n == "") {
			n = "popup_url";
		}
    	var w = (window.screen.width-wid)/2;
		var h = (window.screen.height-hei)/2;
		window.open(url, n, 'scrollbars=yes,resizable=no,menubar=no,statusbar=no,toolbar=no, width='+wid+', height='+hei+', left='+w+',top='+h+',screenX='+w+',screenY='+h+' ');
	}
}

function deActivate ( field, f, val ) {
	if ( val ) {
		eval ('document.forms.'+f+'.'+field+'.disabled=false;');
	} else {
		eval ('document.forms.'+f+'.'+field+'.disabled=true;');
	}
}

function registerPass (f, field1, field2) {
	var p1 = eval ('document.forms.'+f+'.'+field1+'.value;');
	var p2 = eval ('document.forms.'+f+'.'+field2+'.value;');
	if ( p1 != "" && p2 != "" ) {
		if ( p1 == p2 ) {
			return 1;
		} else {
			return 0;
		}
	} else {
		return 2;
	}
}

function isEmail (email) {
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email)) {
		return true;
	} else {
		alert ("Please enter a valid email address");
		return false;
	}
}

function addToField (f, field, val) {
    var fField = eval ('document.forms.'+f+'.'+field);
    fField.value += val;
}

function toWindow (f, e, v) {
	eval ("window.opener.document."+f+"."+e+".value += '"+v+"'");
}

function showmenu (id, val) {
	if (document.getElementById) {
		if(document.getElementById("menu_"+id)) {
			var elem = document.getElementById("menu_"+id);
			if ( val == 0 ) {
				elem.style.display = "none";
			} else if ( val == 1 ) {
                elem.style.display = "";
			}
		}
		return false;
	}
}

function showmenuTimer ( id ) {
    setTimeout( 'showmenu('+id+')', 1000);
}

function goTO ( url, val ) {
	if ( val ) {
		window.location=url;
	}
}

function changeTable ( id ) {
	var div 	= document.getElementById("ajax-content-"+id);
	var img 	= document.getElementById("img-"+id);

	if ( div.style.display == "none" ) {
		div.style.display = "";
		img.src = "/styles/"+style+"/images/tplpages/minus.gif";
		setCookie (id, 'y');
	} else {
        div.style.display = "none";
        img.src = "/styles/"+style+"/images/tplpages/plus.gif";
        setCookie (id, 'n');
	}
}

function setLeadingCookie (id) {
	setCookie ('n'+id, 'y');
}

function setTable ( id ) {
	var div 	= document.getElementById("table_div_"+id);
	var img 	= document.getElementById("table_img_"+id);
	var c = getCookie ( id );
	if ( c == "n" ) {
		img.src = "styles/"+style+"/images/tplpages/plus.gif";
		div.style.display = "none";
	} else if ( c == "y" ) {
		img.src = "styles/"+style+"/images/tplpages/minus.gif";
		div.style.display = "";
	}
}

function selectMove (f, f1, f2) {
	var F1 = eval ('document.forms.'+f+'.'+f1);
	var F2 = eval ('document.forms.'+f+'.'+f2);
	for ( i=0;i<F1.length;i++ ) {
		if ( F1[i].selected == true ) {
			t = getOptionIndex (f1, f, i, 't');
			v = getOptionIndex (f1, f, i, 'v');
			removeOption (f1, f, i)
			addOption (f2, f, t, v);
		}
	}
}

function selectSelectAll (f, n) {
	var selOp = eval ('document.forms.'+f+'.'+n+'');
	for ( i=0;i<selOp.length;i++ ) {
		selOp[i].selected = true;
	}
}

function unSelect ( f, field, val ) {
	if ( val ) {
		var F = eval ('document.forms.'+f+'.'+field);
		F.value = "";
	}
}

function uploadedPreview ( f, field, i ) {
	tmp = i.split ('||');
	i = tmp[0];
	var F1 = eval ('document.forms.'+f+'.'+field);
	if ( i != "" ) {
		F1.src = 'images/upload/'+clientid+'/t-'+i;
	} else {
		F1.src = 'styles/'+style+'/images/spacer.gif';
	}
}

function toImagesWindow (f, e, v) {
	eval ("window.opener.document."+f+"."+e+".value = ''");
	eval ("window.opener.document."+f+"."+e+".value += '"+v+"'");
}

function addToRelated (f, e, v, t) {
    addOption (e, f, t, v);
}

function selectRemove (f, f1, f2) {
	var F1 = eval ('document.forms.'+f+'.'+f1);
	for ( i=0;i<F1.length;i++ ) {
		if ( F1[i].selected == true ) {
			removeOption (f1, f, i)
		}
	}
}

function checkImgRez (w, h) {
	var img =  document.getElementById ('galleryImg');
	if ( parseInt(w) >= 755 ) {
		img.width = 700;
		img.height = 700 / (w/h) ;
	}
}

function resizeImgPopup (w, h) {
	imgw = w + 220;
	imgh = h + 200;
	var w = (window.screen.width-imgw)/2;
	var h = (window.screen.height-imgh)/2;

	if ( window.screen.width <= imgw ) {
		imgw = window.screen.width - 100;
		w = 50;
	}
	if ( window.screen.height <= imgh ) {
		imgh = window.screen.height - 100;
		h = 50;
	}
	
	window.moveTo ( Math.abs (w) , Math.abs (h));
	window.resizeTo (imgw, imgh);
	self.focus ();
}


var win = parent.window.opener ? parent.window.opener : parent.window.dialogArguments;
if (!win) win = top;
tinyMCE = win.tinyMCE;
if ( tinyMCE ) {
	richedit = ( typeof tinyMCE == 'object' && tinyMCE.configs.length > 0 );
}

function sendToEditor (txt) {
	if ( richedit ) {
		win.tinyMCE.execCommand('mceInsertContent', false, txt);
	} else {
		win.edInsertContent(win.edCanvas, txt);
	}
}

function insertImage (cliid, img, alt, thumb) {
	txt = '<a href="" onclick="doOpenPopup (\'/index.php?m=index&o=popup&amp;img=/images/upload/'+cliid+'/'+img+'\', 100, 100, \'popup\'); return false;" title="'+alt+'">';
	if ( thumb ) {
		txt += '<img class="noborder" src="/images/upload/'+cliid+'/t-'+img+'" alt="'+alt+'">';
	} else {
		txt += '<img class="noborder" src="/images/upload/'+cliid+'/'+img+'" alt="'+alt+'">';
	}
	txt += '</a>';
	sendToEditor (txt);
}

function accountSubdomain (f) {
	if ( f.value.length >= 3  ) {
		checkSubdomain (f);
	}
	txt = 'Your weblog address will be<br>http://'+f.value+'.sweblog.net/';
	writeToLayer ('accountsubdomain', txt, 1);
}

function checkSubdomain (f) {
	if (/^([a-zA-Z0-9.-]{3,20})+$/.test(f.value) == false || f.value.length > 20 ) {
		f.value = f.value.substring (0, f.value.length-1);
		alert ('Allowed characters are 0-9 a-z A-Z . -\n3 minimum characters, 20 maximum characters');
	}
}

function fetchTags(parentobj, tag) {
	if (typeof parentobj.getElementsByTagName != 'undefined') {
		return parentobj.getElementsByTagName(tag);
	} else if (parentobj.all && parentobj.all.tags) {
		return parentobj.all.tags(tag);
	} else {
		return null;
	}
}

function showAdminMenu ( menuID ) {
	links = new Array ();
	txt = '<ul id="submenu">\n';
	switch ( menuID ) {
		case 1:
		    links[0] = 'admin.php?m=pages&adminmenu=1|Manage articles';
		    links[1] = 'admin.php?m=pages&o=page&adminmenu=1|Add article';
		break;
		
		case 2:
		    links[0] = 'admin.php?m=pagescat&adminmenu=2|Manage categories';
		    links[1] = 'admin.php?m=pagescat&o=pagecat&adminmenu=2|Add category';
		break;
		
		case 3:
		    links[0] = 'admin.php?m=cat&adminmenu=3|Media Gallery';
		    links[1] = 'admin.php?m=cat&new=1&adminmenu=3|Add new gallery';
		break;
		
		case 4:
		    links[0] = 'admin.php?m=css&adminmenu=4|Manage CSS Styles';
		    links[1] = 'admin.php?m=css&o=css&adminmenu=4|Add CSS Style';
		break;
		
		case 5:
		    links[0] = 'admin.php?m=settings&adminmenu=5|General settings';
		    links[1] = 'admin.php?m=users&o=users&adminmenu=5|Users administration';
		break;
	}
	for ( i=0;i<links.length;i++ ) {
		link = links[i].split ('|');
		txt += '\t<a href="'+link[0]+'">'+link[1]+'</a>\n';
	}
	txt += '</ul>\n';
	writeToLayer ('div_adminmenu', txt, 1);
}

function trackbackMessage () {
	alert ("Right click and copy this link.");
	return false;
}

function adminShowGallery (k) {
	divs = fetchTags(document, 'div');
	for ( i=0;i<divs.length;i++ ) {
		if ( divs[i].id.search("div_gallery")>-1 ) {
		    divs[i].style.display = 'none';
		}
	}
	txt = '<iframe src="admin.php?m=pages&o=images&id='+k+'&type=2&use=1" frameborder="0" height="600" width="800"></iframe>';
	setVisibility ('gallery_'+k, 't');
	writeToLayer ('div_gallery_'+k, txt, 1);
	
}

function flashGallerySize (_width, _height) {
    f = document.getElementById ('flashGallery');
    _h = _height;
    f.height = _h;
}
