//Hide status bar msg II script- by javascriptkit.com
//Visit JavaScript Kit (http://javascriptkit.com) for script
//Credit must stay intact for use
/*
function hidestatus(){
window.status=''
return true
}

if (document.layers)
document.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT)

document.onmouseover=hidestatus
document.onmouseout=hidestatus
*/
// Admin sivujen initialisointi. Kutsutaan index.php:n body-tagin onLoad-eventissä
function admin_init() {
	var qString = unescape(top.location.search.substring(1)); // poimitaan querystring
	
	// Jos ollaan edituserclass-sivulla, niin initialisoidaan kaikki-ruksien tila...
	if (qString.indexOf("edituserclass")>=0) init_all_ruksit();
}

// Menee jonnekin -> nappulat
function MM_goToURL() {
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

// Avaa pop-up ikkunan
function MM_openBrWindow(theURL,winName,features) {
  window.open(theURL,winName,features);
}

// Varmistuskysymys -> poista komennot
function GP_popupConfirmMsg(msg) {
  document.MM_returnValue = confirm(msg);
}

function ConfirmAndGoTo(msg, url) {
  if(confirm(msg)) document.location=url;
}

// Etsitään objekti
function MM_findObj(n, d) {
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

// Tarkastetaan lomake // sais vähän Macromedialla miettiä, miten tehdään luettavia funktioita prkl!
function MM_validateForm() {
  var i,p,q,nm,ok,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { 
  	test=args[i+2]; 
    val=MM_findObj(args[i]);
    if (val) { 
	  if (test.charAt(0) == 'M') {
		// multiple choice checkboxien tarkistus (onko edes yksi valittuna)
		if (isNaN(val.length)) ok = val.status; // Jos checkboxeja onkin vain yksi kpl
		else { // Normaalisti...
			for (var j=0; j<val.length; j++) if(val[j].status) ok=true;
		}
		if (!ok) errors += "- Ainakin yksi uutisluokka täytyy olla valittuna\n"; 
	  } else {
	    nm=val.id; 
	    if ((val=val.value)!="") {
          if (test.indexOf('isEmail')!=-1) { 
	        p=val.indexOf('@');
            if (p<1 || p==(val.length-1)) errors+='- '+nm+' (Check your e-mail address:\n  eg. john.doe@organization.com)\n';
          } else if (test!='R'&&test!='M') { num = parseFloat(val);
            if (isNaN(val)) errors+='- '+nm+':n must be a number.\n';
            if (test.indexOf('inRange') != -1) { 
		      p=test.indexOf(':');
              min=test.substring(8,p); max=test.substring(p+1);
              if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
            }
	      }
	    } else if (test.charAt(0) == 'R') {
	      errors += '- '+nm+' is required.\n'; 
		}
  	  }
	}
  } 
  if (errors) alert('NOTICE!\n\n'+errors);
  document.MM_returnValue = (errors == '');
}

// Ruksaa tai epäruksaa kaikki-ruksin alaiset ruksit. Kaikki-ruksin nimen pitää olla muotoa:
// all_RUKSIRYHMÄNNIMI, eli esim name="all_levels[]". Kaikki-ruksin onClick-iin pitää laittaa "check_all(this)".
function check_all(ruksi) {
	var v, grouppi, ruksigroup;
	grouppi = ruksi.name.substring(4); // poistetaan "all_" ruksin nimestä 
	ruksigroup = MM_findObj(grouppi); // etsitään ruksin alaiset objektit
	// muutetaan kaikki-ruksin alaiset ruksit vastaamaan kaikki-ruksin tilaa
	if (isNaN(ruksigroup.length)) { // Jos checkboxeja on vain yksi kpl
		ruksigroup.status = ruksi.status;
	} else { // normaalisti...
		for (var j=0; j<ruksigroup.length; j++) {
			ruksigroup[j].status = ruksi.status;
			v = ruksigroup[j].value; 
			// tuohon if-häkkyrään kaikkien ruksien valuet, joilla on "alaluokkia"
			if (v=="news" || v=="images" || v=="files" || v=="filecontrol")
				enable_disable_classes(v, ruksigroup[j].status);
		}
	}
}

// Tarkistaa kaikki-ruksin tilan kun jotain kaikki-ruksin alaista ruksia klikataan.
// Toiminta: jos kaikki ryhmän ruksit on ruksattu -> ruksataan myös kaikki-ruksi
//			 jos kaikki ryhmän ruksit on ruksattu ja epäruksataan joku -> epäruksataan myös kaikki-ruksi
// Ryhmän ruksien onClick-iin pitää laittaa "check_one(this)".
// Kaikki-ruksin nimen pitää olla muotoa all_RUKSIRYHMÄNNIMI, eli esim name="all_levels[]".
function check_one(ruksi) {
	var j, v, all_name, ruksigroup, eikaikki=false, kaikki=true;
	// lisätään ruksin nimen alkuun "all_", niin saadaan kaikki-ruksin nimi
	all_name = "all_" + ruksi.name;
	cb_all = MM_findObj(all_name); // etsitään kaikki-ruksi
	ruksigroup = MM_findObj(ruksi.name); // etsitään klikatun ruksin kanssa-objektit
	// tarkastetaan onko kaikki ruksattu
	if (isNaN(ruksigroup.length)) { // Jos checkboxeja on vain yksi kpl
		cb_all.status = ruksigroup.status;
	} else { // normaalisti...
		for (j=0; j<ruksigroup.length; j++) if(!ruksigroup[j].status) eikaikki = true;
		if (eikaikki && cb_all.status) cb_all.status = false; // epäruksataan kaikki-ruksi, jos se on turhaan ruksattuna
		if (!eikaikki && !cb_all.status) cb_all.status = true; // ruksataan kaikki-ruksi, jos se pitää ruksata
	}
	// luokkien enablointi / disablointi
	v = ruksi.value; // tuohon if-häkkyrään kaikkien ruksien valuet, joilla on "alaluokkia"
	if (v=="news" || v=="images" || v=="files" || v=="filecontrol")
		enable_disable_classes(v, ruksi.status);
}

// Luokkien enablointi / disablointi...
function enable_disable_classes(luokka, tila) {
	var j, all_ruksi, ruksit;
	if (luokka != "filecontrol") {
		ruksit = MM_findObj(luokka + "[]");
		// jos löytyy vain yksi ruksi, niin laitetaan sen tila oikeaksi...
		if (isNaN(ruksit.length)) {
			ruksit.disabled = !tila;
			ruksit.status = tila;
		}
		else if (ruksit) {
			// enabloidaan tai disabloidaan kaikki news[]-ruksit
			if (isNaN(ruksit.length)) {	// vain yksi uutisluokka...
				ruksit.disabled = !tila;
				ruksit.status = tila;
			} else {
				for (j=0; j<ruksit.length; j++) {
					if (tila) ruksit[j].disabled = false;
					else { ruksit[j].status = false; ruksit[j].disabled = true; }
				}
			}
		}
		// päätetään all_news[] ruksin kohtalosta, jos semmonen löytyy...
		all_ruksi = MM_findObj("all_"+ luokka + "[]");
		if (all_ruksi && tila) all_ruksi.disabled=false;
		else if (all_ruksi && !tila) { all_ruksi.disabled=true; all_ruksi.status=false; }
	} else {
		// filecontrol -ruksin erityiskäsittely!
		// tilan mukaan enabloidaan / disabloidaan files[] ja images[] luokat, sekä päätasolta niiden ruksit
		// eli ne, joiden valuet on "files" ja "images"
		var paataso = MM_findObj("levels[]");
		for (j=0; j<paataso.length; j++) {
			// käydään kaikki päätason ruksit läpi
			if (paataso[j].value=="files" || paataso[j].value=="images") {
				// jos value on files tai images...
				if (tila) paataso[j].disabled=false; // enabloidaan jos tarvii
				else { 
					paataso[j].disabled=true; 
					paataso[j].status=false; 
					// jos disabloidaan, niin disabloidaan samalla koko files tai images luokka...
					enable_disable_classes(paataso[j].value, tila);
				}
			}
		}
	}
}

// Initialisoi kaikki-ruksit. (Jos kaikki ryhmän ruksit on ruksattu, niin ruksataan myös kaikki-ruksi)
function init_all_ruksit() {
	// kaikki mahdolliset kaikki-ruksit pitää olla tuossa listassa:
	var all_variables = new Array("all_news[]", "all_levels[]", "all_images[]", "all_files[]");
	var i, j, v, ruksi, grouppi, ruksigroup, kaikki=true;
	for (i=0; i<all_variables.length; i++) {
		ruksi = MM_findObj(all_variables[i]);
		if (ruksi) { // Jos ruksi on olemassa...
			grouppi = ruksi.name.substring(4); // poistetaan "all_" ruksin nimestä 
			ruksigroup = MM_findObj(grouppi); // etsitään kaikki-ruksin alaiset ruksit
			// Tutkitaan onko kaikki alaiset ruksit ruksattu
			if (isNaN(ruksigroup.length)) { // Jos rukseja on vain yksi kpl
				ruksi.status = ruksigroup.status;
			} else { // normaalisti...
				// käydään kaikki läpi, ja jos joku ei ole ruksattu niin...
				for (j=0; j<ruksigroup.length; j++)	{
					if (!ruksigroup[j].status) kaikki = false;
					// asetetaan samalla disabled - luokat jos tarvis...
					v = ruksigroup[j].value;
					// tuohon if-häkkyrään kaikkien ruksien valuet, joilla on "alaluokkia"
					if (v=="news" || v=="images" || v=="files" || v=="filecontrol") 
						enable_disable_classes(v, ruksigroup[j].status);
				}	
				// laitetaan kaikki-ruksin statukseksi saatu tulos
				ruksi.status = kaikki;
			}
		}
	}
}

// Sivun esikatselu
function pagePreview(page_id,action) {
  window.open('','preview_win','width=750,toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes')
  document.editpage.action = "../preview.php?preview="+ page_id
  document.editpage.target = "preview_win"
  document.editpage.submit()
  document.editpage.action = action
  document.editpage.target = "_top"
}

// Sivun esikatselu
function pageAddPreview(action) {
  window.open('','preview_win','width=750,toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes')
  document.addpage.action = "../preview.php?preview="
  document.addpage.target = "preview_win"
  document.addpage.submit()
  document.addpage.action = action
  document.addpage.target = "_top"
}

// Vaihdetaan objektin väriä
function changeBackgroundColor(obj, color) {
	obj.style.backgroundColor=color
}

// Jump-menu -> addpage sivutyyppi
function MM_jumpMenu(targ,selObj,restore){
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

// Jump-menu nappula -> 
function MM_jumpMenuGo(selName,targ,restore){
  var selObj = MM_findObj(selName); if (selObj) MM_jumpMenu(targ,selObj,restore);
}

// Ladataan kuvat ensin
function preloadImages() {
 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
   var i,j=d.MM_p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
   if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

// Roll-over swap image
function swapImage() {
	var i,j=0,x,a=swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

// Roll-over swap image restore
function swapImgRestore() {
	var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

// Muutetaan tekstitentän nimeä
function setTextOfTextfield(objName,x,newText) {
	var obj = MM_findObj(objName); if (obj) obj.value = newText;
}

function displayStatusMsg(msgStr) {
	status=msgStr;
	document.MM_returnValue = true;
}

// Poistetaan treemenu "avatut" cookie
function deleteCookie(name, path, domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" + 
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}