﻿
var rowNo = 1;
var prints;
/************** stare funkcije - voda ***************************/

function getHtml(id) {
    return (document.getElementById('tablicaVoda').innerHTML);
}

function addRow(id, restoreValues) {
    var tempHtml = getHtml(id);
    var splitPoint = tempHtml.indexOf('split');
    splitPoint -= 8;
    var startStr = tempHtml.slice(0, splitPoint);
    var endStr = tempHtml.slice(splitPoint, tempHtml.length)
    rowNo++;

    var newStr = startStr + newRow() + endStr;
    
    if(restoreValues){ saveCookie(); }
    document.getElementById('tablicaVoda').innerHTML = newStr;
    if (restoreValues) { RestoreFromCookie(false); }
    calculate();
}
					    
function newRow() {
    var newRewStr;
    newRewStr = "<tr>\n";
    newRewStr = newRewStr + "<td bgcolor=#F1F1F1>" + rowNo + ".</td>\n";
    newRewStr = newRewStr + "<td bgcolor=#F1F1F1><input type=text name=ime" + rowNo + " style=\"width:200px;\" onChange=\"formatMail();\" onBlur=\"updateDOM(this)\"></td>\n";
    newRewStr = newRewStr + "<td align=center bgcolor=#F1F1F1><input type=text name=clanovi" + rowNo + " style=\"width:80px;\" onChange=\"formatMail();\" onBlur=\"updateDOM(this)\"></td>\n";
    newRewStr = newRewStr + "<td align=center bgcolor=#F1F1F1><input type=text name=hladna" + rowNo + " style=\"width:80px;\" onChange=\"calculate();\" onBlur=\"updateDOM(this)\"></td>\n";
    newRewStr = newRewStr + "<td align=center bgcolor=#F1F1F1><input type=text name=topla" + rowNo + " style=\"width:80px;\" onChange=\"calculate();\" onBlur=\"updateDOM(this)\"></td>\n";
    newRewStr = newRewStr + "</tr>\n";

    return newRewStr;
}
function calculate() {
    var coldWaterTotal = 0;
    var hotWaterTotal = 0;
    var tempHotValue = 0;
    var tempColdValue = 0;
    for (var i = 1; i <= rowNo; i++) {
        hladna = eval("document.Form1.hladna" + i + ".value");
        topla = eval("document.Form1.topla" + i + ".value");

        if (isNaN(parseFloat(hladna)))
            tempColdValue = 0;
        else
            tempColdValue = parseFloat(hladna);

        if (isNaN(parseFloat(topla)))
            tempHotValue = 0;
        else
            tempHotValue = parseFloat(topla);

        coldWaterTotal += tempColdValue;
        hotWaterTotal += tempHotValue;
    }
    document.Form1.ukupnoHladna.value = coldWaterTotal;
    document.Form1.ukupnoTopla.value = hotWaterTotal;
    formatMail();
}
function formatMail() {
    var mailBody;
    mailBody = "<HTML>\n<HEAD>\n<title>Interaktivni obrazac - voda</title>\n</HEAD>\n<BODY>\n";
    mailBody = mailBody + "<TABLE cellSpacing=1 cellPadding=4 width=600 align=center border=1>\n<TBODY>\n";
    mailBody = mailBody + "<TR>\n<TD>Stambena zgrada: </TD>\n";
    mailBody = mailBody + "<TD>" + document.getElementById('zgrada').value + "</TD>\n</TR>\n",
	mailBody = mailBody + "<TR>\n<TD>Ovla&#353;tena osoba: </TD>\n";
    mailBody = mailBody + "<TD>" + document.getElementById('osoba').value + "</TD>\n</TR>\n";
    mailBody = mailBody + "<TR>\n<TD>Email: </TD>\n";
    mailBody = mailBody + "<TD>" + document.getElementById('email').value + "</TD>\n</TR>\n";
    mailBody = mailBody + "<TR>\n<TD>Za mjesec: </TD>\n";
    mailBody = mailBody + "<TD>" + document.getElementById('mjesec').value + "</TD>\n</TR>\n";
    mailBody = mailBody + "<TR>\n<TD>Godina: </TD>\n";
    mailBody = mailBody + "<TD>" + document.getElementById('godina').value + "</TD>\n</TR>\n</TBODY>\n</TABLE>\n";
    mailBody = mailBody + "<TABLE cellSpacing=1 cellPadding=4 width=600 align=center border=1>\n<TBODY>\n";
    mailBody = mailBody + "<TD bgColor=#e1e1e1 rowSpan=2>R. Br.</TD>\n";
    mailBody = mailBody + "<TD bgColor=#e1e1e1 rowSpan=2>Prezime i ime obveznika </TD>\n";
    mailBody = mailBody + "<TD align=middle bgColor=#e1e1e1 rowSpan=2>Br. &#269;lanova</TD>\n";
    mailBody = mailBody + "<TD align=middle bgColor=#e1e1e1 colSpan=2>Individualni vodomjer </TD>\n</TR>\n";
    mailBody = mailBody + "<TR>\n<TD align=middle bgColor=#e1e1e1>Hladna voda </TD>\n";
    mailBody = mailBody + "<TD align=middle bgColor=#e1e1e1>Topla voda </TD>\n</TR>\n";

    for (var i = 1; i <= rowNo; i++) {
        mailBody = mailBody + "<TR>\n<TD bgColor=#f1f1f1>" + i + ".</TD>\n";
        mailBody = mailBody + "<TD bgColor=#f1f1f1>" + eval("document.Form1.ime" + i + ".value") + "</TD>\n";
        mailBody = mailBody + "<TD align=middle bgColor=#f1f1f1>" + eval("document.Form1.clanovi" + i + ".value") + "</TD>\n";
        mailBody = mailBody + "<TD align=middle bgColor=#f1f1f1>" + eval("document.Form1.hladna" + i + ".value") + "</TD>\n";
        mailBody = mailBody + "<TD align=middle bgColor=#f1f1f1>" + eval("document.Form1.topla" + i + ".value") + "</TD>\n</TR>\n";
    }

    mailBody = mailBody + "<TR id=split>\n";
    mailBody = mailBody + "<TD bgColor=#e1e1e1>&nbsp;</TD>\n";
    mailBody = mailBody + "<TD bgColor=#e1e1e1><STRONG>Ukupno</STRONG></TD>\n";
    mailBody = mailBody + "<TD align=middle bgColor=#e1e1e1>&nbsp;</TD>\n";
    mailBody = mailBody + "<TD align=middle bgColor=#e1e1e1>" + document.Form1.ukupnoHladna.value + "</TD>\n";
    mailBody = mailBody + "<TD align=middle bgColor=#e1e1e1>" + document.Form1.ukupnoTopla.value + "</TD>\n</TR>\n</TBODY>\n</TABLE>\n";
    mailBody = mailBody + "</BODY>\n</HTML>";

    document.getElementById('_ctl0_tbBody').value = mailBody;
	prints = mailBody;
}

function validateForm() {
    var value = true;
    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    var adress = document.getElementById('email').value;
    
    if (document.getElementById('zgrada').value.length < 1) { value = false; }
    if (document.getElementById('osoba').value.length < 1) { value = false; }
    if (reg.test(adress) == false)
		{value = false;
		alert ("Molimo, napišite točnu email adresu.")
		return value;}
    if (document.getElementById('mjesec').value.length < 1) { value = false; }
    if (document.getElementById('godina').value.length < 1) { value = false; }
    if (!value) {
        alert("Molimo, popunite sva polja označena zvjezdicom.")
    }
    else {
        saveCookie();
    }
    return value;
}
function updateDOM(inputField) {
    // if the inputField ID string has been passed in, get the inputField object    
    if (typeof inputField == "string") {
        inputField = document.getElementById(inputField);
    }
    if (inputField.type == "select-one") {
        for (var i = 0; i < inputField.options.length; i++) {
            if (i == inputField.selectedIndex) {
                inputField.options[inputField.selectedIndex].setAttribute("selected", "selected");
            }
        }
    } else if (inputField.type == "text") {
        inputField.setAttribute("value", inputField.value);
    } else if (inputField.type == "textarea") {
        inputField.setAttribute("value", inputField.value);
    } else if ((inputField.type == "checkbox") || (inputField.type == "radio")) {
        if (inputField.checked) {
            inputField.setAttribute("checked", "checked");
        } else {
            inputField.removeAttribute("checked");
        }
    }
}								


/************** nove funkcije by Jadran *******************/
function FormField(name, value) {
    this.name = name;
    this.value = value;
}

function saveCookie() {
    var now = new Date();
    now.setMonth(now.getMonth() + 1);

    var str = "TextValues=";
    var str2 = "FieldsNames=";
    var elem = document.getElementById('Form1').elements;
    for (var i = 0; i < elem.length; i++) {
        if (elem[i].type == "text") {
            str += elem[i].value + "|";
            str2 += elem[i].name + "|";
        }
    }


    str += ";expires=" + now.toGMTString();
    str2 += ";expires=" + now.toGMTString();
    
    // slijedeæi if detektira da li klijent ima IE
    if(/*@cc_on!@*/false){
	    document.cookie = str;
	    document.cookie = str2;
	    document.cookie = "rowNo=" + rowNo + ";expires=" + now.toGMTString();
    }
    else{
	    document.cookie = encode_utf8(str);
	    document.cookie = encode_utf8(str2);
	    document.cookie = encode_utf8("rowNo=" + rowNo + ";expires=" + now.toGMTString());
	}
}

function encode_utf8(pVrijednost) 
{ 
	var encodedString = unescape(encodeURIComponent(pVrijednost));
	return encodedString; 
}            
function decode_utf8(pVrijednost) 
{
	var decodedString = decodeURIComponent(escape(pVrijednost));
	return decodedString;	
}

function RestoreFromCookie(isDocLoad) {
    if (document.cookie.length > 0) {
     // var allcookies = document.cookie;
        var cookiearray4 = GetCookie('FieldsNames');
        var cookiearray2 = GetCookie('TextValues');
		if((cookiearray4!=null)&&(cookiearray2!=null))
		{
   //   var cookiearray1 = allcookies.split(';');

 //     var cookiearray2 = cookiearray1[0].split('=');

      var cookiearray3 = cookiearray2.split('|');

  //    var cookiearray4 = cookiearray1[1].split('=');

     var cookiearray5 = cookiearray4.split('|');

        var sviElementi = document.getElementById('Form1').elements;
        var sviElementiLength = sviElementi.length;
        var sviTextElementi = new Array();


        for (var i = 0; i < sviElementiLength; i++) {
            if (sviElementi[i].type == "text") {
                sviTextElementi.push(sviElementi[i]);
            }
        }

        var sviTextElementiLength = sviTextElementi.length;
        var fieldWithCookie = new Array();
        for (var i = 0; i < sviTextElementiLength; i++) {
            fieldWithCookie.push(new FormField(cookiearray5[i], cookiearray3[i]));
        }

        for (var i = 0; i < sviTextElementiLength; i++) {
            if ((sviTextElementi[i].name == fieldWithCookie[i].name) && (fieldWithCookie[i].value!="")) {
                sviTextElementi[i].value = fieldWithCookie[i].value;
            }
        }
        }
    }
}

function generateRows(isFromCookie) {
    if (document.cookie.length > 0) {
        //var allcookies = document.cookie;
        var allcookies = GetCookie('rowNo');
     //var cookiearray1 = allcookies.split(';');
     if(allcookies!=null){
      var cookiearray4 = allcookies.split('=');
	    var numOfGeneratedRows = cookiearray4[0];
	    for (i = 1; i <= numOfGeneratedRows; i++) {
	        if (IsGeneratedRowEmpty(i))
	        return true;
	        addRow(rowNo, false);
	    }


    }
    }
}

// Retrieve the value of the cookie with the specified name.
function GetCookie(sName)
{
  // cookies are separated by semicolons
  var aCookie = document.cookie.split("; ");
  for (var i=0; i < aCookie.length; i++)
  {
    // a name/value pair (a crumb) is separated by an equal sign
    var aCrumb = aCookie[i].split("=");
    if (sName == aCrumb[0]){
    	// slijedeæi if detektira da li klijent ima IE
	    if(/*@cc_on!@*/false){
	    	return unescape(aCrumb[1]);
	    }
	    else{	 
	    	return decode_utf8(aCrumb[1]);
	    }
	 }
    
  }
  // a cookie with the requested name does not exist
  return null;
}


function printSelection(){
	formatMail();
	var htmlTablicaPrint = prints;
	var pwin = window.open('', 'print_content', 'width=620,height=720');
	pwin.document.open();
	pwin.document.write('<html><body onload="window.print()">' + htmlTablicaPrint + '</body></html>');
	pwin.document.close();
	setTimeout(function () { pwin.close(); }, 1000);
}

 
function IsGeneratedRowEmpty(rowNo) {
    if (document.cookie.length > 0) {
        // var allcookies = document.cookie;
        var cookiearray4 = GetCookie('FieldsNames');
        var cookiearray2 = GetCookie('TextValues');
		if((cookiearray4!=null)&&(cookiearray2!=null))
		{
   //   var cookiearray1 = allcookies.split(';');

 //     var cookiearray2 = cookiearray1[0].split('=');

      var cookiearray3 = cookiearray2.split('|');

  //    var cookiearray4 = cookiearray1[1].split('=');

     var cookiearray5 = cookiearray4.split('|');

        var sviElementi = document.getElementById('Form1').elements;
        var sviElementiLength = sviElementi.length;
        var sviTextElementi = new Array();


        for (var i = 0; i < sviElementiLength; i++) {
            if (sviElementi[i].type == "text") {
                sviTextElementi.push(sviElementi[i]);
            }
        }

        var sviTextElementiLength = sviTextElementi.length;
        var fieldWithCookie = new Array();
        for (var i = 0; i < sviTextElementiLength; i++) {
            fieldWithCookie.push(new FormField(cookiearray5[i], cookiearray3[i]));
        }

        for (var i = 0; i < fieldWithCookie.length; i++) {
            if ((fieldWithCookie[i].name == "ime" + rowNo)) {
                if (fieldWithCookie[i].value != "") {
                    return false;
                }
            }
        }

        return true;
}
    }
}

