/*
		Bokningsmodulen Booky : javascript
		Se changes.log!
		Vid ändringar för in i changes.log!
				
		Författare:			
		Johan Egneblad (johan.egneblad@gmail.com) JE
	*/

var BookyXML;
var BookyToggleFieldsVar = false;
var BookyMoveFromID = -1;

var running_in_dev = "";

//running_in_dev = "/cptrucken"; // comment this out if not

// ====================================================================================
// ====================================================================================
// ====================================================================================
// Funktioner för anmälningsformuläret

// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// Här måste kontroll av input göras !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

function BookySubmit(fieldsToCheck,ObjectID) {
  
  var Output = '';
  var Fields = fieldsToCheck.split(":");
  var value;
  var form;
  var radio;
  var radioLength;

  var Pass = 2;
  var i;
  
  while (Fields.length>0) {
    var CheckType = Fields.shift();    
    var Field = Fields.shift(); // hämta de två översta raderna  
    var Input = document.getElementById(Field);
    
    switch (CheckType) {
      case "NotEmpty":
        if (Input.value=='') Pass=1;
        break;
      case "Integer":
        var s = Input.value;
        var c;
        if (s=='') Pass=1; 
        else {
          for (i=0; i<s.length; i++) {
            c = s.charCodeAt(i);
            if ((c < 48) || (c > 58)) Pass=1;
          }
        }
        break;
      case "NonMinusOne":
        if (Input.value=='-1') Pass=1;
        break;
      case "AddMultiplyer":
        form = document.getElementById("bookyform");
        radio = form.elements[Field+"Option"];
        Input = document.getElementById(Field+"Multiplyer");
        radioLength = radio.length;
	
        for(i=0; i < radioLength; i++) {
          if(radio[i].checked) {
            value = radio[i].value;
            break;
          }
        }
        values = Input.value.split(":")
        if (values.length > 1)
            Input.value = values[values.length-1];
        
        Input.value = value+":"+Input.value;
	
        break;
      case "NoMultiplyer":
        form = document.getElementById("bookyform");
        radio = form.elements[Field+"Option"];
        Input = document.getElementById(Field+"Multiplyer");
        radioLength = radio.length;

        for(i=0; i < radioLength; i++) {
          if(radio[i].checked) {
            value = radio[i].value;
            break;
          }
        }
        Input.value = value;

        break;
    }
    if (Pass==1) {
      Input.style.background = "#f88";
      Pass = 0;
    }
  }

  if(Pass) {
    document.getElementById("bookyform").submit();
    document.getElementById("mainright").innerHTML = "<div id=\"bookybody\">Vänligen vänta medan din anmälan registeres och ett mail skickas till dig!</div>";
    setTimeout(function(){AjaxLoadPage(running_in_dev+'/Module/Booky/Booky.php?Obj='+ObjectID,'mainright');},5000);
    
  // "<h1>Din anmälan har skickats</h1>Klicka <a onClick=\"AjaxLoadPage('Module/Booky/Booky.php?Obj="+ObjectID+"','mainright');\" style=\"cursor: pointer\">här</a> för att kontrollera din anmälan (går bara om du är inloggad).";
  } else {
    alert("Vänligen fyll i de rödmarkerade fälten korrekt.");
  }
  return false;

}


// ====================================================================================
// ====================================================================================
// ====================================================================================
// Funktioner för fältredigeringsrutan 

var BookyCopy="";

function BookyShowEditor(id,ObjectID) {
  var editor = document.getElementById('FieldEditor'+id);
  BookyCopy = editor.innerHTML; // take screenshot, used on cancel event
  if (editor) {
    // editor.style.display = "block";
    var url = running_in_dev+"/Module/Booky/Include/BookyFieldEditor.php?Obj="+ObjectID+"";
    var div = "FieldEditor"+id;
    var postvar = "fieldid="+id;
    var wysiwygelements = "";
    var funcpoint = BookyUpdateType;
    AjaxLoadPage(url, div, postvar, wysiwygelements, funcpoint)
  } else {
    alert ("No element "+id+" found");
  }
}

function BookyFieldChange(field) {
  var Item;
  if (field.id=="BookyTType")
    Item = "Type";
  else if (field.id=="BookyTCaption")
    Item = "Caption";
  else if (field.id=="BookyTValue")
    Item = "Value";
  else if (field.id=="BookyTCost")
    Item = "Cost";
  else
    return 0;
   
  var ChangesDiv = document.getElementById('BookyFieldChanges');
  Changes = ChangesDiv.innerHTML;
  Changes = Changes.replace("<div>","");
  Changes = Changes.replace("</div>","");
  Changes = Changes.split("|");
   
  var newChanges = ""; var Parts; var Found = false; var Change;
  for (var i in Changes) {
    Change = Changes[i];
    Parts = Change.split("--&gt;");
    if (Parts[1] == Item) {
      newChanges += field.value + "--&gt;" + Item + "|";
      Found = true;
    }else if (Parts.length==2) {
      newChanges += Change + "|";
    }
  }
  if (!Found) {
    newChanges += field.value + "--&gt;" + Item;
  }
   
  ChangesDiv.innerHTML = newChanges;
   
  if (Item=="Type") { // Change the descriptions
    var BookyCCaption = document.getElementById("BookyCaption");
    var BookyCValue = document.getElementById("BookyValue");
    var BookyCCost = document.getElementById("BookyCost");
    var BookyECaption = document.getElementById("BookyCaptionExp");
    var BookyEValue = document.getElementById("BookyValueExp");
    var BookyECost = document.getElementById("BookyCostExp");
    switch (field.value) {
      case "Info":
        BookyCCaption.innerHTML = "Rubrik";
        BookyCValue.innerHTML = "Brödtext";
        BookyCCost.innerHTML = "<font color=\"gray\">Kostnad</font>";
        BookyECaption.innerHTML = "Denna information syns både före och efter anmälan.";
        BookyEValue.innerHTML = "Skriv lite vad du vill.";
        BookyECost.innerHTML = "Används ej för denna typ";
        break;
      case "Label":
        BookyCCaption.innerHTML = "Rubrik";
        BookyCValue.innerHTML = "Text";
        BookyCCost.innerHTML = "<font color=\"gray\">Kostnad</font>";
        BookyECaption.innerHTML = "Denna information syns bara under anmälan.";
        BookyEValue.innerHTML = "Hjälptext i formuläret.";
        BookyECost.innerHTML = "Används ej för denna typ";
        break;
      case "Text": case "TextStar":
        BookyCCaption.innerHTML = "Fråga";
        BookyCValue.innerHTML = "Förifyllt";
        BookyCCost.innerHTML = "<font color=\"gray\">Kostnad</font>";
        BookyECaption.innerHTML = "En valfri bit text";
        BookyEValue.innerHTML = "Standardvärdet som står när formuläret öppnas";
        BookyECost.innerHTML = "Används ej för denna typ";
        break;
      case "Check":
        BookyCCaption.innerHTML = "Fråga";
        BookyCValue.innerHTML = "Förifyllt";
        BookyCCost.innerHTML = "Kostnad";
        BookyECaption.innerHTML = "Påstående eller val som kan vara sant eller falskt";
        BookyEValue.innerHTML = "Värde kan vara antingen 0 för okryssad eller 1 för ikryssad";
        BookyECost.innerHTML = "Mängden pengar (kr) det kostar att lämna kryss i rutan";
        break;
      case "Option":
        BookyCCaption.innerHTML = "Fråga";
        BookyCValue.innerHTML = "Alternativ";
        BookyCCost.innerHTML = "Kostnader";
        BookyECaption.innerHTML = "En valfri bit text";
        BookyEValue.innerHTML = "Separera alternativen med semikolon (;) Ex: Röd;Grön;Blå";
        BookyECost.innerHTML = "Separera kostnader (kr) med semikolon (;). Samma ordning som alternativen.";
        break;
      case "Number":
        BookyCCaption.innerHTML = "Sak";
        BookyCValue.innerHTML = "Förifyllt";
        BookyCCost.innerHTML = "Styckpris";
        BookyECaption.innerHTML = "Beskrivande namn på saken man kan välja antal av.";
        BookyEValue.innerHTML = "Förvalt antal. Skriv bara ett heltal, t ex 1.";
        BookyECost.innerHTML = "Priset som multipliceras med antalet kunden valt.";
        break;
      case "Cost":
        BookyCCaption.innerHTML = "Rubrik";
        BookyCValue.innerHTML = "Beskrivning";
        BookyCCost.innerHTML = "<font color=\"gray\">Kostnad</font>";
        BookyECaption.innerHTML = "Namn på den fasta kostnaden, t ex bokningsavgift.";
        BookyEValue.innerHTML = "Vidare beskrivning.";
        BookyECost.innerHTML = "Pris i antal kr, t ex 20";
        break;
      case "Limit":
        BookyCCaption.innerHTML = "Begränsning";
        BookyCValue.innerHTML = "Värde";
        BookyCCost.innerHTML = "<font color=\"gray\">Kostnad</font>";
        BookyECaption.innerHTML = "Ordlista: FirstEntry=Första anmälan, LastEntry=Sista anmälan, Max=Antal platser";
        BookyEValue.innerHTML = "*Entry: YYYY-MM-DD hh:mm, Max: bara ett heltal";
        BookyECost.innerHTML = "Används ej för denna typ";
        break;
    }
  }
  return;
}

function BookyFieldSave(fieldid, objectid) {
  var editor = document.getElementById('FieldEditor'+fieldid);
  var ChangesDiv = document.getElementById('BookyFieldChanges');
  Changes = ChangesDiv.innerHTML;
  Changes = Changes.replace("<div>","");
  Changes = Changes.replace("</div>","");
  Changes = Changes.replace(/--&gt;/g,"--leftarrow--");
   
  if (Changes=="Inga &auml;ndringar") {
    BookyFieldCancel(fieldid); // inga ändringar gjorda
    return 0;
  }
      
  if (editor) {
    var url = running_in_dev+"/Module/Booky/Include/BookyFieldSave.php?Obj="+objectid;
    var div = "FieldEditor"+fieldid;
    var postvar = "fieldid="+fieldid+"&changes="+Changes;
    var wysiwygelements = "";
    AjaxLoadPage(url, div, postvar, wysiwygelements, BookyFlashElement(fieldid));
  }else
    alert ("No editor "+id+" found");
}

function BookyFieldCancel(fieldid) {
  var editor = document.getElementById('FieldEditor'+fieldid);
  editor.innerHTML = BookyCopy;
  return 0;
}

function BookyFieldReload(objectid) {
  LoadAdminPage2("objectadmin.php?Obj="+objectid,objectid);
  return 0;
}

function BookyUpdateType() {
  var BT = document.getElementById("BookyTType");
  BookyFieldChange(BT);
  return 0;
}

function BookyDeleteField(id,ObjectID) {
  var editor = document.getElementById('FieldEditor'+id);
  if (editor) {
    editor.style.display = "block";
    var url = running_in_dev+"/Module/Booky/Include/BookyFieldDelete.php?Obj="+ObjectID+"";
    var div = "FieldEditor"+id;
    var postvar = "fieldid="+id;
    var wysiwygelements = "";
    var funcpoint = BookyHide(id);
    AjaxLoadPage(url, div, postvar, wysiwygelements, funcpoint)
  }else
    alert ("No element "+id+" found");
}

function BookyHide(fieldid) {
  var editor = document.getElementById('FieldEditor'+fieldid);
  editor.style.background = "red";
  setTimeout("editor.innerHTML = \"\"; editor.style.display = \"none\";",1000);
  return 0;
}

function BookyFlashElement(fieldid) {
  var editor = document.getElementById('FieldEditor'+fieldid);
  editor.style.background = "#aaffaa";
  setTimeout("document.getElementById('FieldEditor"+fieldid+"').style.background = \"#b0fcb0\";",5000);
  setTimeout("document.getElementById('FieldEditor"+fieldid+"').style.background = \"#bbfabb\";",5050);
  setTimeout("document.getElementById('FieldEditor"+fieldid+"').style.background = \"#c0f8c0\";",5100);
  setTimeout("document.getElementById('FieldEditor"+fieldid+"').style.background = \"#ccf5cc\";",5150);
  setTimeout("document.getElementById('FieldEditor"+fieldid+"').style.background = \"#d0f2d0\";",5200);
  setTimeout("document.getElementById('FieldEditor"+fieldid+"').style.background = \"#ddf0dd\";",5250);
  setTimeout("document.getElementById('FieldEditor"+fieldid+"').style.background = \"#e0eee0\";",5300);
  setTimeout("document.getElementById('FieldEditor"+fieldid+"').style.background = \"\";",5350);
  return 0;
}

function BookyOptionNumber(fieldid,change) {
  input = document.getElementById(fieldid+"Multiplyer");
  if(!input) alert("input");
  values = input.value.split()
  if (values.length > 1)
    input.value = values[values.length-1];
  view =  document.getElementById(fieldid+"Number");
  if(input && view) {
    input.value = parseInt(input.value) + change;
    if (input.value=="0") input.value = "1";
    view.innerHTML = input.value;
  } else alert("Fäl på systämet!");
}

// Nånting jag hittade 
function IsNumeric(sText)

{
  var ValidChars = "0123456789";
  var IsNumber=true;
  var Char;

  if( sText == '' )
    IsNumber=false;
  else
  {
    for (i = 0; i < sText.length && IsNumber == true; i++)
    {
      Char = sText.charAt(i);
      if (ValidChars.indexOf(Char) == -1)
      {
        IsNumber = false;
      }
    }
  }
  return IsNumber;
}

function BookyMove(RPID,ObjectID,FieldID) {
  if (BookyMoveFromID == -1) { // Init move
     BookyMoveFromID = FieldID;
     if (fb = document.getElementById('fmove'+FieldID)) {
        fb.innerHTML = '[från]';
        fb.style.color = 'white';
        fb.style.fontweight = 'bold';
        fb.style.backgroundColor = '#333';
     }
  } else { // Perform move
     if (FieldID == BookyMoveFromID) { // Same ID: cancel
        BookyMoveFromID = -1;
        fb.innerHTML = '[flytta]';
        fb.style.color = 'gray';
        fb.style.fontweight = 'normal';
        fb.style.background = 'none';
     } else { // Perform move
        location.href='http://www.maskinsektionen.se'+running_in_dev
                                                     +'/?rp='+RPID
                                                     +'&panel=1'
                                                     +'&Obj='+ObjectID
                                                     +'&bmet=movefield'
                                                     +'&bfrom='+BookyMoveFromID
                                                     +'&bto='+FieldID
                                                     ;
     }
    
  }
}
