/**********************************
Created by Dokkedahl - feel free
to copy whatever code you like - open
source is the only way. Any graphics
is NOT my work so the usual
copyright stuff applies to those.

Web:	http://www.dokkedahl.dk
Email:	info@dokkedahl.dk

** Utility functions for SRPL **

**********************************/

function isCookiesEnabled() {
  // Try writing a cookie
  document.cookie = "test=" + 42;
  // Try reading it - if this fails cookies are not enabled
  if(document.cookie) {
    // Delete the cookie
    var expireDate = new Date();
    expireDate.setTime(expireDate.getTime() - 100);
    document.cookie += "; expires=" + expireDate.toGMTString();
    return true;
  }
  else
    return false;
}

function initTest() {
  if(isCookiesEnabled()) {
    location.href = "login.php";
  }
  else {
    location.href = "help.php?subject=enableCookies";
  }
}

// Used on login page

// FEJL VED KUNDENUMMER
// thisFormDiv.innerHTML = '<form method="post" action="login.php" class="noBR" onsubmit="javascript: return validateForm(this,\'userId\',\'passwd\');">' +

function changeLoginForm(mode) {
  // Close help if open
  if (document.getElementById('helpBox'))
    closeHelp();
  var thisFormDiv = document.getElementById('loginForm');
  switch (mode) {
    case 'doLogin':
      thisFormDiv.innerHTML = '<form method="post" action="login.php" class="noBR" onsubmit="javascript: return validateForm(this,\'passwd\');">' +
                              'Kundenummer:<br/>' +
                              '<input type="text" maxlength="8" size="8" name="userId" class="input" /><br/>' +
                              'Adgangskode:<br/>' +
                              '<input type="password" maxlength="8" size="8" name="passwd" class="input" /><br/><br/>' +
                              '<input type="submit" name="doLogin" value="Login" class="button" />&nbsp;' +
                              '<input type="button" name="sendPass" value="Glemt adgangskode" class="button" onclick="javascript: changeLoginForm(\'sendPass\');" />' +
                              '&nbsp;&nbsp;&nbsp;<input type="button" name="guestLogin" value="Log ind som g&#230;st" class="button" onclick="javascript: location.href=\'login.php?guestLogin=1\';" />' +
                              '</form>';
      break;
    case 'sendPass':
      thisFormDiv.innerHTML = '<form method="post" action="login.php" class="noBR" onsubmit="javascript: return validateForm(this,\'email\');">' +
                              'E - mail adresse:<br/>' +
                              '<input type="text" name="email" maxlength="40" size="40" class="input" /><br/><br/>' +
                              '<input type="submit" name="sendMail" value="Send adgangskode" class="button" />&nbsp;' +
                              '<input type="button" name="doLogin" value="Login" class="button" onclick="javascript: changeLoginForm(\'doLogin\');" />' +
                              '</form>';
      break;
    default:
      break;
  }
  thisFormDiv.firstChild.elements[0].focus();
}

// Used on search page
/*function changeSearchOptions(opt) {
  var txt = "";
  opt = opt*1;
  switch(opt) {
    case 1:
      txt = 'Fabrikant:<br/><input type="text" name="manufacture" value="" class="input" /><br/>' +
            'Model:<br/><input type="text" name="model" value="" class="input" /><br/><br/>' +
            '<input type="radio" checked="checked" name="secMatch" value="and" />S&#248;g ud fra <b>alle ord</b> i model feltet.<br/>' +
            '<input type="radio" name="secMatch" value="or" />S&#248;g ud fra <b>et af ordene</b> i model feltet. (Kan tage lang tid)<br/><br/>' +
            '<input type="hidden" name="priSearch" value="mm" />' +
            '<input type="hidden" name="priMatch" value="like" />' +
            '<input type="submit" value="S&#248;g" title="Start s&#248;gning ud fra fabrikant og model" class="button" />&nbsp;';
      break;
    case 2:
      txt = 'Gruppenummer:&nbsp;<input type="text" name="groupnumber" value="" maxlength="7" class="input" style="width: 45px;" /><br/>' +
            '<input id="groupNumberExactSearch" type="radio" checked="checked" name="priMatch" value="exact" />S&#248;g pr&#230;cis efter dette gruppenummer.<br/>' +
            '<input type="radio"  name="priMatch" value="like" />S&#248;g p&#229; gruppenumre som minder om.<br/><br/>' +
            '<input type="hidden" name="priSearch" value="gn" />' +
            '<input type="submit" value="S&#248;g" title="Start s&#248;gning ud fra gruppenummer" class="button" />&nbsp;';
      break;
    case 3:
      txt = 'Varenummer:<br/><input type="text" name="productCode" value="" maxlength="6" class="input" style="width: 40px;" /><br/>' +
      		  'Varebeskrivelse:<br/><input type="text" name="productDesc" value="" class="input" style="width: 210px;" /><br/><br/>' +
      		  '<input type="hidden" name="priSearch" value="pd" />' +
            '<input type="submit" value="S&#248;g" title="Start s&#248;gning ud fra varenummer og produkt beskrivelse" class="button" />&nbsp;';
      break;
    default:
      break;
  }
  txt += '<input type="reset" value="Ryd s&#248;gefelter" class="button" onclick="changeSearchOptions" />';
  document.getElementById('searchOptions').innerHTML = txt;
}*/

// Can be called with any number of args
// arg0 is a reference to the form that called the function
function validateForm() {
  var thisForm = arguments[0];
  if (document.getElementById('helpBox'))
    closeHelp();
  // Special case. Need to test ALL numeric inputs on basket.php, template.php and search.php
  if (arguments[1] == "QTY") {
    for(var i=0;i<thisForm.elements.length;i++) {
      if (thisForm.elements[i].type == "text") {
        var txt = thisForm.elements[i].name.split("=");
        if (txt[0].substring(txt[0].length-3).toLowerCase() == "qty") {
          var regEx = /^\d{1,3}$/;
          if (!regEx.test(thisForm.elements[i].value)) {
            displayHelp(thisForm.elements[i],"Feltet kan kun indeholde tal og må ikke være tomt.");
            thisForm.elements[i].focus();
            return false;
          }
        }
      }
		}
  }
  else {
    for (var i=1; i<arguments.length; i++) {
      var testValue = thisForm.elements[arguments[i]].value;
      switch (arguments[i]) {
        case 'userId':
          var regEx = /\d{5,8}/;
          if (!regEx.test(testValue)) {
  					displayHelp(thisForm.elements[arguments[i]],"Kundenummeret er min. 5 cifre langt.");
  					thisForm.elements[arguments[i]].focus();
  					return false;
  				}
          break;
        case 'passwd':
          if (testValue.length < 3 || testValue.length > 8) {
            displayHelp(thisForm.elements[arguments[i]],"Adgangskoden er ml. 3 og 8 tegn lang.");
            thisForm.elements[arguments[i]].focus();
            return false;
          }
          break;
        case 'email':
          var regEx = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/;
          if (!regEx.test(testValue)) {
  					displayHelp(thisForm.elements[arguments[i]],"Formatet af e - mail adressen er ikke korrekt.");
  					thisForm.elements[arguments[i]].focus();
  					return false;
  				}
          break;
        /* Kian vil gerne have at fabrikant felt må være tomt
        case 'manufacture':
          //alert('testing manufacture: ' + thisForm.elements[arguments[i]].name);
          if (testValue.length<1) {
            displayHelp(thisForm.elements[arguments[i]],"Fabrikant feltet kan ikke være tomt.");
  					thisForm.elements[arguments[i]].focus();
  					return false;
          }
          break;*/
        case 'groupnumber':
          var regEx = /^((\d{1,5}[a-zA-Z]{0,2})|([a-zA-Z]{1}))$/;
          if (!regEx.test(testValue)) {
            if (testValue != "SK168") {
              displayHelp(thisForm.elements[arguments[i]],"Gruppenummer består af min. 5 tal evt. efterfulgt af 1 el. 2 bogstaver. Kan også være det specille gruppenummer 'SK168'");
              thisForm.elements[arguments[i]].focus();
              return false;
  					}
  				}
          break;
        case 'productCode':
          var regEx = /^\d{1,5}[a-zA-Z]?$/;
          if (testValue && !regEx.test(testValue)) {
  					displayHelp(thisForm.elements[arguments[i]],"Varenummer består af op til 5 tal evt. efterfulgt af 1 bogstav.");
  					thisForm.elements[arguments[i]].focus();
  					return false;
  				}
          break;
        case 'cvr':
          var regEx = /^\d{8}$/;
          if (!regEx.test(testValue)) {
  					displayHelp(thisForm.elements[arguments[i]],"CVR nummeret består af 8 tal");
  					thisForm.elements[arguments[i]].focus();
  					return false;
  				}
          break;
        default:
          break;
      }
    }
  }
  return true;
}

function getAbsPosition(obj) {
	var objParent = null;
	var pos = new Object();
  pos.x = 0;		// x - koordinat
	pos.y = 0;		// y - koordinat
	while(objParent != 'BODY') {
		// Walk up our document tree until we find the body
		// and add the distance from the parent to our counter.
		pos.x += obj.offsetLeft;
		pos.y += obj.offsetTop;
		objParent = obj.offsetParent.tagName;
		obj = obj.offsetParent;
	}
return pos;
}

function displayHelp(obj,txt) {
	var pos = getAbsPosition(obj);
	var elm = document.createElement("DIV");
	elm.className = "helpBoxHeader";
  elm.innerHTML = '<img src="gfx/redarrow_tmp.gif" height="10" width="11" alt="" style="margin-right: 165px;" />' +
                  '<img src="gfx/close.gif" height="10" width="11" alt="Luk hj&#230;lpen" onclick="javascript: closeHelp();" />';
  
  
  var elm2 = document.createElement("DIV");
	elm2.className = "helpBox";
	elm2.id = "helpBox";
	elm2.style.left = pos.x+obj.offsetWidth+4;
	elm2.style.top = pos.y+1;
	elm2.appendChild(elm);
	elm2.innerHTML += txt;
	document.body.appendChild(elm2);
	elm2.style.display='inline';
}

function closeHelp() {
  document.body.removeChild(document.getElementById('helpBox'));
}

function closeGuide() {
  var elm = document.getElementById('guideBox');
  document.getElementById('guideButton').value = "Vis vejledning";
  elm.parentNode.removeChild(elm);
}

function clearInput(form) {
	for (var i=0; i<form.length; i++) {
		if (form.elements[i].type == "text" || form.elements[i].type == "textarea")
			form.elements[i].value="";
	}
}

function generatePasswd() {
  var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  var returnString="";
  for(var i=0; i<8; i++)
    returnString += chars.charAt(~~(Math.random() * (61 + 1)));
  document.getElementById('passwd').value=returnString;
}

function showGuide(obj,num) {
  if (obj.value == "Luk vejledning") {
    closeGuide();
    obj.value = "Vis vejledning";
  }
  else {
    obj.value = "Luk vejledning";
    var offElm = document.getElementById('searchOptions');
    var pos = getAbsPosition(offElm);
  	var elm = document.createElement("DIV");
  	elm.className = "helpBoxHeader";
    elm.style.textAlign = 'right';
    elm.innerHTML = '<img src="gfx/close.gif" height="10" width="11" alt="Luk Vejledning" onclick="javascript: closeGuide();" />';
    var elm2 = document.createElement("DIV");
  	elm2.className = "helpBox";
  	elm2.id = "guideBox";
  	//elm2.style.left = pos.x;
  	elm2.style.position = "relative";
  	elm2.style.marginTop = 14;
  	elm2.appendChild(elm);
  	elm2.innerHTML += "Her skal Kian skrive en vejledning...";
  	offElm.parentNode.appendChild(elm2);
  	elm2.style.display='block';
  }
}

