﻿// JScript File
// js/JScript.js
// Localy websites main JavaScript File

////////////////////////////////////
// Global Var For Google Channel:
var globalTmpStr = '';
var objectIdToWriteIn = '';
////////////////////////////////////


////////////////////////////////////
// Global vars for leads:
var Force_LeadLocation = '';
var Leads_CitiesArr = new Array();
var Lead_CityGuidsArr = new Array();
var Leads_EnableNP = true;

////////////////////////////////////

////////////////////////////////////////////////
// Load City GUIDS to Lead_CityGuidsArr
function LoadCityGuids() {
    var pageURL = "/ajax/GetCityGuids.aspx";
    //location.href = pageURL;
    var xObj = getHttpRequestObj();
    xObj.onreadystatechange = function() {

        if (xObj.readyState == 4) {


            var ResultStr = xObj.responseText;

            var TmpArr = ResultStr.split('~');

            var CityName = '';
            var CityGuid = ''
            for (var i = 0; i < TmpArr.length; i++) {
                CityName = TmpArr[i].split('|')[0];
                CityGuid = TmpArr[i].split('|')[1];
                Lead_CityGuidsArr[CityName] = CityGuid;
            }
        }
    };

    xObj.open("get", pageURL, true);
    xObj.send(null);
}

LoadCityGuids();



////////////////////////////////////
// Prototypes:
////////////////////////////////////
String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, "");
}

String.prototype.isValidMail = function() {
    var _email = this;
    var emailReg = /^[a-z][a-z-_0-9\.]+@[a-z-_=>0-9\.]+\.[a-z]{2,3}$/i
    return emailReg.test(_email);
}

String.prototype.isValidPhone = function() {

    phoneNumber = this.trim();
    if (phoneNumber.length < 7 || phoneNumber.length > 12) {
        return (false);
    }

    var strArr = phoneNumber.split("");

    var i = 0;
    if (strArr[0] != '0') {
        return (false);
    }

    for (i = 0; i < strArr.length; i++) {
        if (strArr[i] != '-' && strArr[i] != ' ' && isNaN(strArr[i])) {
            return (false);
        }
    }

    if (phoneNumber.indexOf('-') > -1) {
        if (phoneNumber.split('-')[1][0] == '0' || phoneNumber.split('-')[1][0] == '1') {
            return (false);
        }
        if (phoneNumber.split('-')[0].length < 1 || phoneNumber.split('-')[0].length > 3) {
            return (false);
        }
    }

    return (true);
}
//////////////////////////////////////////

//////////////////////////////////////////
// Http Request:
//////////////////////////////////////////
function getHttpRequestObj() {
    var xmlhttp;
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (E) {
            xmlhttp = false;
        }
    }
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
        xmlhttp = new XMLHttpRequest();
    }
    return xmlhttp;
}


//////////////////////////////////////////
//  Header Search:
//////////////////////////////////////////
function ClickOnHeaderSearch(TextBoxObjId) 
{

    Keyword = document.getElementById(TextBoxObjId).value.trim();
    if (Keyword != '' && Keyword != "מה ברצונך לחפש..." && Keyword != "יש להזין טקסט לחיפוש") 
    {
        location.href = "/Suppliers/k:" + encodeURI(Keyword.trim()).toLowerCase();
    }
    else 
    {
        document.getElementById(TextBoxObjId).value = "יש להזין טקסט לחיפוש";
    }
}

////////////////////////////////////////////////////////////
// Function is called when user clicks on top search text
function TopSearchTextClick(TextBoxObjId) 
{
    keyword = document.getElementById(TextBoxObjId).value;
    if (keyword.trim() == 'מה ברצונך לחפש...' || keyword.trim() == 'יש להזין טקסט לחיפוש') 
    {
        document.getElementById(TextBoxObjId).value = '';
    }
}

////////////////////////////////////////////////////////////

// Function checks for ENTER click on top search
function CheckTopSearchKeyPress(TextBoxObjId) {
    if (window.event.keyCode == 13) {
        ClickOnHeaderSearch(TextBoxObjId);
    }
}


//////////////////////////////////////////

//////////////////////////////////////////
// Right Side Cat and City Search:

//////////////////////////////////////////
function ClickOnSideSearch(CatName, CityName) 
{
    if (CityName.trim() != '') 
    {
        location.href = "/Suppliers/" + encodeURI(CityName).toLowerCase() + "/" + encodeURI(CatName).toLowerCase() + ".html";
    }
    else
    {
        location.href = "/Suppliers/" + encodeURI(CatName).toLowerCase() + ".html";
    }
}

//////////////////////////////////////////

//////////////////////////////////////////

// Top Search:
//////////////////////////////////////////
function clickOnSearch(searchObj)
{
    if(searchObj.value == "מה ברצונך לחפש...")
    {
        searchObj.value = '';
    }
}
//////////////////////////////////////////


//////////////////////////////////////////
// Top Categories:
//////////////////////////////////////////
function showTopCats(catId)
{
    if(!catId)
    {
        var divObj = document.getElementById("topCatsDiv");
        divObj.style.display = '';
    }
    else
    {
        var divObj = document.getElementById("topCatsDiv" + catId);
        divObj.style.display = '';
    }
}

function hideTopCats(catId)
{
    if(!catId)
    {
        var divObj = document.getElementById("topCatsDiv");
        divObj.style.display = 'none';
    }
    else
    {
        var divObj = document.getElementById("topCatsDiv" + catId);
        divObj.style.display = 'none';
    }
}
//////////////////////////////////////////


//////////////////////////////////////////
// Mail Decrypt:
//////////////////////////////////////////
function getBusinMailTo(mailEncStr)
{
    mailEncStr = mailEncStr.replace(/\*\*ar335/g,".");
    mailEncStr = mailEncStr.replace(/\*aps221/g,"@");
    mailEncStr = mailEncStr.replace(/\*\*456gf/g,"");
    mailEncStr = mailEncStr.replace(/\*2dujeth/g,"");    
    document.write("<a target=\"_blank\" title=\"שלח פניה באימייל לעסק\" class=\"businSiteLink\" rel=\"nofollow\" href=\"mailto:" + mailEncStr + "\">שלח פניה באימייל לעסק</a>");
}
//////////////////////////////////////////



//////////////////////////////////////////
// Question Functions:
//////////////////////////////////////////
function showQuestionErr(errStr)
{
    var htmStr = "<b style=\"font-size:11px;font-weight:bold;color:red\">" + errStr + "</b>";
    if(errStr != "")
    {
        document.getElementById("errSpan").innerHTML = htmStr;
    }
    else
    {
        document.getElementById("errSpan").innerHTML = "";
    }
}


function ClickOnQuestionText(questionTextObj) {
    if (questionTextObj.value.trim() == 'נסחו בצורה מפורטת את שאלתכם והשאלה תופנה למומחים בתחום') {
        questionTextObj.value = '';
    }
}


function saveQuestion(questionText, replierId, catId)
{
    showQuestionErr("");
    if (questionText.trim() == "" || questionText.trim() == 'נסחו בצורה מפורטת את שאלתכם והשאלה תופנה למומחים בתחום')
    {
        showQuestionErr("יש להזין שאלה");
        return;
    }
    questionText = escape(questionText);
    document.getElementById("qDiv").innerHTML = "<div><img style=\"margin:25px 5px 0 0\" src=\"/App_Themes/images/load.gif\" />&nbsp;&nbsp; שאלתך נשלחת, נא להמתין</div>";
    var pageURL = "/ajax/saveQuestion.aspx?questionText=" + questionText + "&replierId=" + replierId + "&catId=" + catId;
    var xObj = getHttpRequestObj();
    xObj.onreadystatechange =  function () 
	        {
			    if(xObj.readyState==4)
			    { 
			        var questionId = parseInt(xObj.responseText);
                    document.getElementById("qDiv").style.display = "none";
		            //document.getElementById("sendQdiv").style.display = "none";
		            document.getElementById("QSentdiv").style.display = "";
		            document.getElementById("questionId").value = questionId;
                }
		    }
	xObj.open ("get", pageURL ,true);
	xObj.send(null);
}

function updateQuestionMail(questionId, ownerEmail, ownerPhone)
{
    showQuestionErr("");
    if(!ownerEmail.isValidMail())
    {
        showQuestionErr("יש להזין כתובת אימייל תיקנית");
        return;
    }
    if (!ownerPhone.isValidPhone()) {
        showQuestionErr("יש להזין מס טלפון");
        return;
    }
    ownerEmail = escape(ownerEmail);
    document.getElementById("QSentdiv").innerHTML = "<div><img style=\"margin:25px 5px 0 0\" src=\"/App_Themes/images/load.gif\" />&nbsp;&nbsp; כתובת אימייל נשלחת</div>";
    var pageURL = "/ajax/updateQuestionMail.aspx?ownerEmail=" + encodeURI(ownerEmail) + "&questionId=" + questionId + "&ownerPhone=" + encodeURI(ownerPhone);

    var xObj = getHttpRequestObj();
    xObj.onreadystatechange =  function () 
	        {
			    if(xObj.readyState==4)
			    { 
			        document.getElementById("QSentdiv").innerHTML = "<div style=\"color:#333;font-size:bold;margin:25px 5px 0 0\">הפרטים נשמרו בהצלחה, שאלתך תפורסם בקרוב. תודה</div>";
                }
		    }
	xObj.open ("get", pageURL ,true);
	xObj.send(null);
}
/////////////////////////////////////

/////////////////////////////////////
// Cookies:
/////////////////////////////////////
function createCookie(name,value,days,ipath)
{
	if (ipath == undefined) 
	{
		ipath = "";
	}
	if (days)
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/"+ipath;
}

function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name)
{
	createCookie(name,"",-1);
}
///////////////////////////////////////////////////


///////////////////////////////////////////////////
// Err business Image Load:
///////////////////////////////////////////////////
function logoImageErr(imgObj)
{
    imgObj.src ="/App_Themes/images/noimg.jpg";  
}
///////////////////////////////////////////////////




///////////////////////////////////////////////////
/// Lead Save Functions:
///////////////////////////////////////////////////

function SetSideLeadPosition()
{
    var SideLeadDiv = document.getElementById("sideLead");
    var ContentWidth = 1000;
    var WinWidth = $(window).width();
    var WinHeight = $(window).height();
    var ContentSides = WinWidth - ContentWidth;
    var SideLeadLeft = 0;
    var SideLeadTop = 0;
    if (WinWidth <= 1024) 
    {
        SideLeadDiv.style.display = 'none';
        return;
    }
    else 
    {
        SideLeadLeft = ContentWidth + (ContentSides / 2) + 20;
        SideLeadTop = WinHeight / 2 - 200;
        SideLeadDiv.style.left = SideLeadLeft + 'px';
        SideLeadDiv.style.top = SideLeadTop + 'px';
    }

}

function ShowPopupLead(FormLocation) 
{
    if (FormLocation != undefined && FormLocation.trim() != '') 
    {
        Force_LeadLocation = FormLocation.trim();
    }
    $('#PopupLead').dialog('open');
    WriteLeadFrameStat(FormLocation, "PopUpOpened");
}

function HidePopupLead(FormLocation) 
{

    if (FormLocation != undefined && FormLocation.trim() != '') 
    {
        Force_LeadLocation = FormLocation.trim();
    }
    $('#PopupLead').dialog('close');
    WriteLeadFrameStat(Force_LeadLocation, "PopUpClosed");
}

///////////////////////////////////////////////////
// Function returns NP City GUID by the city name
// AJAX Page: /ajax/GetCityNPGuid.aspx
function GetNpCityGuid(CityName) {

    var pageURL = "/ajax/GetCityNPGuid.aspx?CityName=" + encodeURI(CityName);
    var Guid = '';
    var xObj = getHttpRequestObj();
    xObj.onreadystatechange = function() {
        if (xObj.readyState == 4) {
            Guid = xObj.responseText;

        }
    }
    xObj.open("get", pageURL, false);
    xObj.send(null);
    return (Guid);
}
/////////////////////////////////////////////////////////////////////////



/////////////////////////////////////////////////////////////////////////
// Function sends Lead to No Problem
// AJAX Page: /ajax/webService.asp
function SendLeadToNP(NPCatGuid, formDiv, sendingDiv, sentDiv, VarsPref)
{
    var PhoneNumber;
    var PrimaryExpertise;
    var SecondaryExpertise;
    var City;
    var NumOfSuppliers;

    PhoneNumber = document.getElementById(VarsPref + "LeadPhone").value.trim();
    PrimaryExpertise = NPCatGuid;
    SecondaryExpertise = '00000000-0000-0000-0000-000000000000'; // No need for that
    City = Lead_CityGuidsArr[document.getElementById(VarsPref + "LeadCity").value.trim()]; 
    NumOfSuppliers = "3";

    var pageURL = "/ajax/webService.asp?phoneNumber=" + PhoneNumber + "&PrimaryExpertise=" + PrimaryExpertise + "&SecondaryExpertise=" + SecondaryExpertise + "&City=" + City + "&NumOfSuppliers=" + NumOfSuppliers;
    if (!Leads_EnableNP) 
    {
        return;
    }
    var xObj = getHttpRequestObj();
    xObj.onreadystatechange =  function () 
	        {
			    if(xObj.readyState==4)
			    { 
                     sentDiv.style.display = '';
                     sendingDiv.style.display = 'none';
                     WriteLeadFrameStat(Force_LeadLocation, "SentToNoProblem");
                }
		    }
	xObj.open ("get", pageURL ,true);
	xObj.send(null);

}
/////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////
// Function saves Lead if needed it executes SendLeadToNP function also
// AJAX Page: /ajax/saveLead.aspx
function SaveLead(SourceCatId, LeadSourceURL, VarsPref, NPCatGuid, FormLocation, BlockMoreCats, IsDifferentSite)
{

    if (FormLocation != undefined && FormLocation.trim() != '' && Force_LeadLocation == '') 
    {
        Force_LeadLocation = FormLocation;
    }
   
   var name = document.getElementById(VarsPref + "LeadName");
   var phone = document.getElementById(VarsPref + "LeadPhone");
   var city = document.getElementById(VarsPref + "LeadCity"); 
   var email =  document.getElementById(VarsPref + "LeadEmail");
   var comments = '';
   var ClientName = '';

   /////////////////////
   // Checking name:
   if(name.value.trim() == '')
   {
        name.className = "textErr";
        return;
   }
   else
   {
        name.className = "text";
   }

   /////////////////////
   // Checking phone:
   if (!phone.value.isValidPhone()) {
       phone.className = "textErr";
       phone.value = 'יש להזין מספר וקידומת';
       return;
   }
   else {
       phone.className = "text";
   }

   /////////////////////
   // Checking email:
   if (email.value.trim() == '' || !email.value.isValidMail())
   {
        email.className = "textErr";
        return;
   }
   else
   {
        email.className = "text";
   }

   /////////////////////
   // Checking city:
   if (city.value.trim() == '' || Lead_CityGuidsArr[city.value.trim()] == null) 
   {
       city.className = "textErr";
       city.value = 'יש לבחור יישוב מהרשימה';
       return;
   }
   else 
   {
       city.className = "text";
   }


   ///////////////////////
   // Busins Checkboxes:
   var matches = new Array();
   $(".LeadBusinsCHK:checked").each(function() {
       matches.push(this.value);
   });

   var LeadComments = '';
   if (matches.length > 0) 
   {
       LeadComments = "מוסדות מסומנים בטופס הליד: ";
       for (var i = 0; i < matches.length; i++) 
       {
           LeadComments += matches[i] + " , ";
       }
   }
   
   
   

   ////////////////////////
   // Information divs:
   var formDiv = document.getElementById(VarsPref + "LeadFormPlace");
   var sendingDiv = document.getElementById(VarsPref + "LeadSendingPlace");
   var sentDiv = document.getElementById(VarsPref + "LeadSentPlace");
   formDiv.style.display = 'none';
   sendingDiv.style.display = '';

    /*
    if (NPCatGuid.trim() != '') 
    {
        // Sending lead to NP using SendLeadToNP function
        SendLeadToNP(NPCatGuid, formDiv, sendingDiv, sentDiv, VarsPref);
        comments = "Lead sent to NO PROBLEM.";
        ClientName = 'No Problem';
    }
    else
    {
        ClientName = 'Leadim';
    }
    */
    var pageURL = "/ajax/saveLead.aspx?";
    pageURL += "UserName=" + escape(name.value); 
    pageURL += "&PhoneNumber=" + escape(phone.value);
    pageURL += "&UserEmail=" + escape(email.value);
    pageURL += "&SourceCatId=" + escape(SourceCatId);
    pageURL += "&Comments=" + escape(LeadComments);
    pageURL += "&CityName=" + escape(city.value);
    pageURL += "&LeadSourceURL=" + escape(LeadSourceURL);
    pageURL += "&ClientName=" + escape(ClientName);
    pageURL += "&FormLocation=" + escape(Force_LeadLocation);
    if (IsDifferentSite != undefined) {
        pageURL += "&IsDifferentSite=" + escape(IsDifferentSite);
    }
    
    var xObj = getHttpRequestObj();
    xObj.onreadystatechange = function() {
        if (xObj.readyState == 4) {
            sentDiv.style.display = '';
            sendingDiv.style.display = 'none';
            WriteLeadFrameStat(Force_LeadLocation, "LeadSaved");
            if (BlockMoreCats != 1) {
                GetLeadRelatedCats(SourceCatId, VarsPref, LeadSourceURL, FormLocation);
            }
            else {

                var MoreCatsPlace = document.getElementById(VarsPref + "LeadMoreCatsPlace");
                MoreCatsPlace.style.display = 'none';
            }

        }
    }
	xObj.open ("post", pageURL ,true);
	xObj.send(null);
    
}
/////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////
// Function save analitycs lead statistic by executing /LeadSentFrame.aspx
// By writing it to LeadSentDiv (Located in the master page)
function WriteLeadFrameStat(FormLocation, ActionType) {

    if (FormLocation == '' || FormLocation == undefined) {
        if (Force_LeadLocation != '' && FormLocation != undefined) {
            FormLocation = Force_LeadLocation;
        }
    }
    var IframeUrl = "/LeadSentFrame.aspx?FormLocation=" + encodeURI(FormLocation) + "&ActionType=" + encodeURI(ActionType);
    var IframeObj = document.getElementById("LeadSentDiv");
    if (!IframeObj) {
        IframeObj = window.parent.document.getElementById("LeadSentDiv");
    }
    
    IframeObj.innerHTML = "<iframe style=\"width:0;height:0;border:0;\" src=\"" + IframeUrl + "\" /></iframe>";
}




//////////////////////////////////////////////////////////////////////////
//
// AJAX Page: /ajax/GetLeadRelatedCats.aspx
function GetLeadRelatedCats(CatId, VarsPref, LeadSourceURL, FormLocation)
{
    var pageURL = "/ajax/GetLeadRelatedCats.aspx?CatId=" + CatId;
    var MoreCatsPlace = document.getElementById(VarsPref + "LeadMoreCatsPlace");

    var xObj = getHttpRequestObj();
    xObj.onreadystatechange = function() {
    if (xObj.readyState == 4) 
        {

            var AjaxResult = xObj.responseText;
            if (AjaxResult == '') {
                return;
            }
            MoreCatsPlace.style.display = '';
            var TmpArr = AjaxResult.split('~');
            var CatId;
            var CatName;
            var CatGuid;
            var HtmlStr = '';
            HtmlStr = '<table class="LeadsMoreCatsTBL">';
            HtmlStr += '<tr>';
            HtmlStr += '<td colspan="2" class="title">';
            HtmlStr += '<b>חכו!</b><br />';
            HtmlStr += 'חסכו זמן וקבלו הצעות מבעלי מקצוע נוספים – הכל בלחיצת כפתור<br />';
            HtmlStr += 'אני מעוניין גם ב:<br />';
            HtmlStr += '</td>';
            HtmlStr += '</tr>';
            for (var i = 0; i < TmpArr.length; i++) {
                CatId = TmpArr[i].split('|')[0];
                CatName = TmpArr[i].split('|')[1];
                CatGuid = TmpArr[i].split('|')[2];
                HtmlStr += '<tr>';
                HtmlStr += '<td class="check"><input class="LeadCHK" name="MoreLeadCatsCHK" value="' + CatId + '|' + CatGuid + '" type="checkbox" /></td><td class="text">' + CatName + '</td>';
                HtmlStr += '</tr>';

            }
            HtmlStr += '<tr>';
            HtmlStr += '<td colspan="2" class="bottom"><img src="/App_Themes/images/Leads/PopLead_Button.jpg" onclick="SendMoreLeadCats(' + CatId + ', \'' + VarsPref + '\', \'' + LeadSourceURL + '\', \'' + FormLocation + '\')" title="שלח פניה עכשיו" class="SendLink" /></td>';
            HtmlStr += '</tr>';
            HtmlStr += '</table>';
            MoreCatsPlace.innerHTML = HtmlStr;
            MoreCatsPlace.style.display = '';

        }
    }
    xObj.open("post", pageURL, true);
    xObj.send(null);
   
}
/////////////////////////////////////////////////////////////////////////



function SendMoreLeadCats(CatId, VarsPref, LeadSourceURL, FormLocation) 
{

    var OneCatId = '';
    var OneCatGUID = '';
    var BlockMoreCats = 1;
    var IsDifferentSite = 1;

    var matches = new Array(); 
    $(".LeadCHK:checked").each(function() 
    {    
         matches.push(this.value); 
    
    });


    for (var i = 0; i < matches.length; i++) 
    {

            OneCatId = matches[i].split('|')[0];
            OneCatGUID = matches[i].split('|')[1];
            SaveLead(OneCatId, LeadSourceURL, VarsPref, OneCatGUID, FormLocation, BlockMoreCats, IsDifferentSite);
        
    }

    
}


//////////////////////////////////////////////////////////////////////////
// Function returns array of cities - seperated by | for the auto complete
// AJAX Page: /ajax/GetCitiesForAutoComplete.aspx
function GetLeadCitiesForAutoComplete(TextBoxObjId) 
{

    if (Leads_CitiesArr.length > 0) 
    {
            $("#" + TextBoxObjId).autocomplete
            (
            Leads_CitiesArr,
            {
                matchContains: true
            }
            );
            return;
    }
    
    var pageURL = "/ajax/GetCitiesForAutoComplete.aspx";
    var xObj = getHttpRequestObj();
    xObj.onreadystatechange = function() 
    {
        if (xObj.readyState == 4)
         {
            Leads_CitiesArr = xObj.responseText.split('|');
            $("#" + TextBoxObjId).autocomplete
            (
            Leads_CitiesArr,
            {
                matchContains: true
            }

            );
        }
    }
    xObj.open("get", pageURL, true);
    xObj.send(null);
}
/////////////////////////////////////////////////////////////////////////

var LastContactBusinId = 0;
/////////////////////////////////////////////////////////////////////////
function ShowBusinResultContact(BusinId) 
{
    var writeToDiv = document.getElementById(BusinId + "BusinContact");
    var ContactHTML = '';
    if (writeToDiv.innerHTML != '')
    {
        writeToDiv.innerHTML = '';
        LastContactBusinId = 0;
        return;
        
    }
    if (LastContactBusinId > 0) 
    {
        document.getElementById(LastContactBusinId + "BusinContact").innerHTML = "";
    }
   
    document.getElementById(BusinId + "BusinContact").innerHTML = "<iframe style=\"width:705px;height:230px;\" frameborder=\"0\" src=\"/ResultContactFrame.aspx?BusinId=" + BusinId + "\"></iframe>";
    LastContactBusinId = BusinId;
    

}

/////////////////////////////////////////////////////////////////////////


