// maiklas
$j = jQuery.noConflict();
$j(document).ready(function() {
    $j = jQuery.noConflict();
    //Prideda nauja eilute
    $j("#add").click(function(){
        var text = $j("<tr class='super'>"+$j("#"+$j("#add").attr("rel")).html()+"</tr>");
	  text.find('input[name=code\[\]]').bind('blur', function(){loadBySKU( $(this) );} );
	  // text.find('input[name=qty\[\]]').bind('keyup', function(){ updateSum( $(this) ); } );
	  text.find('input').removeClass('error').val('');
        $j("#add").parent().parent().before(text);
        $j(".super").focus();
        $j(".super").removeClass("super");
        return false;
    });
    $j('a.delete').click(function(){
         window.location=$j(this).attr("href");
       return true;
    });
    $j("a.delete").confirm({
      msg:'Ar tikrai norite pašalinti?',
      timeout:3000,
      dialogShow:'fadeIn',
      dialogSpeed:'fast',
      buttons: {
        ok:'Taip',
        cancel:'Ne',
        wrapper:'<button></button>',
        separator:'  '
      }
    });
    
    // prikabina eventu handlerius
    var base = $j('input#base_url').val();
    $j('#greitas_uzsakymas_form input[name=code\[\]]').unbind("blur").bind('blur', function(){loadBySKU( $(this) );} );
    $j('#greitas_uzsakymas_form input[name=qty\[\]]').unbind("blur").bind('blur', function(){
        if($j(this).parent().parent().find('input[name=code\[\]]').val()!='' && (Number($j(this).val())+0)<=0){
            $j(this).addClass('error');
        }else{
            $j(this).removeClass('error');
        }
    } );
   // $j('#greitas_uzsakymas_form input[name=qty\[\]]').bind('keyup', function(){ updateSum( $(this) ); } );
    //$j('#greitas_uzsakymas_form').attr('action', base+"checkout/cart/quickAdd");
    // Jei uzvaziuota ant meniu, tai slepiam A-Z
    $j(".top_level").mouseover(function(){
        if( $j("#abecele_list").is(':visible') ) {
            $j(".abecele_list").hide();
            $j("#abecele_list").toggle();
        }
    });
    // rodom arba ne abeceles navigacija
    $j("#ieskoti_a_z").click(function(){
        $j(".abecele_list").hide();
        $j("#abecele_list").toggle();
        return false;
    });
    $j("a.letter").hover(
        function () {
            $j(".abecele_list").hide();
            $j("#abecele_"+this.id).toggle();
        }
    );
    $j("form").submit(function(){
        var submitAllowed = true;
        $j($j(this)+" input.required-entry").each(function () {
            if($j(this).val()==''){
                submitAllowed=false;
                $j(this).addClass('error');
            }else{
                $j(this).removeClass('error');
                if($j(this).hasClass('email')){
                    if(isValidEmailAddress($j(this).val())==false){
                        submitAllowed=false;
                        $j(this).addClass('error');
                    }
                }
                if($j(this).hasClass('companycode')){
                    if(isEnterpriseCode($j(this).val())==false){
                        submitAllowed=false;
                        $j(this).addClass('error');
                    }
                }
            }
        });
        return submitAllowed;
    });
});

function toggleclass(obj) {
    var el = document.getElementById(obj);
    if ( el.className != 'toggle' ) {
        el.className = 'toggle';
    }
    else {
        el.className = '';
    }

    $j("form").submit(validate());

}

// Patikrina ar validus el. pasto adresas
function isValidEmailAddress(emailAddress) {
    var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
    return pattern.test(emailAddress);
}
// patikrina ar ivesta reiksme yra is 9 skaitmenu
function isEnterpriseCode(number){
    
    var pattern = new RegExp(/^[0-9]{9}$/);
    return pattern.test(number);
}
//Patikrina ar validus telefono numeris
function checkPhoneNumber(number, type) {
    var filter1 = /^\+370\-\d{1}\-\d{7}$/; //Vln
    var filter2 = /^\+370\-\d{2}\-\d{6}$/; //Kwn, Klp, etc.
    var filter3 = /^\+370\-\d{3}\-\d{5}$/; //Mob, Telec.
    var filter3_1 = /^\+370\-6\d{2}\-\d{5}$/; //Mob -> grieztai, kad pirmas kodo simbolis - 6
    var filter4 = /^\+371\-\d{7,8}$/; //LV
    if (type == 'MLT') {
        return filter3_1.test(number);
    }
    if (type == 'T') {
        if (filter1.test(number)) {
            return true;
        }
        if (filter2.test(number)) {
            return true;
        }
    }
    if (filter3.test(number)) {
        return true;
    }
    if (filter4.test(number)) {
        return true;
    }
    return false;
}

function loadBySKU(field) {
	$j('.ajax_loader_animation').show();
	if($j(field).val() == '') {
	      $j(field).css('background-color', 'white').removeClass('error');
          $j('.ajax_loader_animation').hide();
		return;
	}
	var base = $j('input#base_url').val();

	$j.getJSON(base+'search/ajax/findServiceProductBySKU/', {sku: $j(field).val()}, function(j) {
		$j('.ajax_loader_animation').hide(); 
	      if(j.status == 'OK') {
	            $j(field).css('background-color', 'white').removeClass('error');
			var $tr = $j(field).parent().parent();
			$tr.find('input[name=productname\[\]]').val(j.product.name);
			$tr.find('input[name=price\[\]]').val(j.product.specialPrice != null ? custRound(j.product.specialPrice,2) : custRound(j.product.price,2));
			if($tr.find('input[name=qty\[\]]').val() == '') {
				$tr.find('input[name=qty\[\]]').focus();
				$tr.find('input[name=sum\[\]]').val('');
			}
			else updateSum( $tr.find('input[name=qty\[\]]') );
			
	      }
	      else if($j(field).val() != '') {
	            $j(field).css('background-color', '#FFCCCC').addClass('error');
	            var $tr = $j(field).parent().parent();
	            $tr.find('input[name=productname\[\]]').val('');
			$tr.find('input[name=price\[\]]').val('');
			$tr.find('input[name=qty\[\]]').val('');
			$tr.find('input[name=sum\[\]]').val('');
	      }
	});
}

function updateSum(field) {
	var $f = $j(field);
	var $tr = $f.parent().parent();
	var sum = parseFloat($f.val())*parseFloat($tr.find('input[name=price\[\]]').val());
	$tr.find('input[name=sum\[\]]').val( isNaN(sum) ? '' : custRound(sum,2) );
}

function validateQuickOrderForm() {
 
	var fails = 0;     
      $j('#greitas_uzsakymas_form tbody tr').each(function() {
         //if( $j(this).find('.form_prekes_kodas').length == 0 || $j(this).find('.form_prekes_kodas input').val() == '') return true;
            
		if( $j(this).find('.form_prekes_kodas input').hasClass('error')) {
			//console.log(this); //$j(this).find('.form_prekes_kodas input').val());
		      alert($j('#err_msg_1').val()+' - ' + $j(this).find('.form_prekes_kodas input').val());
		      fails++;  
		      return false;
		}
		else if($j.trim($j(this).find('.form_prekes_kodas input').val())!=''&&(typeof $j(this).find('.form_prekes_kodas input').val())!='undefined' && $j(this).find('.form_kiekis input').val() == '' || $j.trim($j(this).find('.form_prekes_kodas input').val())!=''&&(typeof $j(this).find('.form_prekes_kodas input').val())!='undefined' && isNaN( $j(this).find('.form_kiekis input').val() ) ) {
		      alert($j('#err_msg_2').val()+' '+$j(this).find('.form_prekes_kodas input').val()+' - '+$j(this).find('.form_pavadinimas input').val());
		      fails++;
		      return false;
		}
		return true;    
      });
      
      return fails == 0;
}

function custRound(x,places,cutoff) {
    // Created 1997 by Brian Risk.  http://brianrisk.com 
    if(x==null||x=="")x="0";
    var rnded = String(x);
    if ( Number(x)!=0 ){    
    	rnded = String( (Math.round(x*Math.pow(10,places)))/Math.pow(10,places));
	   	} ;
    if ( rnded.indexOf(".") == -1 || Number(x)==0){
  
    rnded = String(rnded)+ ".";
    for(var f = 0; f < places; f++){
        rnded= String(rnded) + "0";  
       
        };
    }
    else{
        var zeros = (rnded.length -  rnded.indexOf(".") - 1);
        for(var f = 0; f < ( places - zeros ); f++){
            rnded += "0";  
            }        
        }
    if(cutoff!=null){
    var tmpAr = rnded.split(".");
    if( Number("." + tmpAr[1] ) < cutoff ){
        tmpAr[1] = "";
        for(var f = 0; f < places; f++){
            tmpAr[1] += "0";  
            } 
        }
    rnded = tmpAr.join(".");
    }
    return  rnded;
    }
    
function execAjaxLoad(ajaxUrl,targetContainer){ 
	if((typeof targetContainer)=='undefined')targetContainer='#catalog-listing-container';
	if(ajaxUrl.indexOf('ajax=')==-1) ajaxUrl=ajaxUrl.split('?').join('?ajax=1&');
	$j('div.ajax_loader_animation').show();
    $j(targetContainer).load(ajaxUrl,$j('#layered-filter-form').serialize(),function(response){$j('div.ajax_loader_animation').hide()});
	}

    var keyStr = "ABCDEFGHIJKLMNOP" +
               "QRSTUVWXYZabcdef" +
               "ghijklmnopqrstuv" +
               "wxyz0123456789+/" +
               "=";

  function encode64(input) {
     input = escape(input);
     var output = "";
     var chr1, chr2, chr3 = "";
     var enc1, enc2, enc3, enc4 = "";
     var i = 0;

     do {
        chr1 = input.charCodeAt(i++);
        chr2 = input.charCodeAt(i++);
        chr3 = input.charCodeAt(i++);

        enc1 = chr1 >> 2;
        enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
        enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
        enc4 = chr3 & 63;

        if (isNaN(chr2)) {
           enc3 = enc4 = 64;
        } else if (isNaN(chr3)) {
           enc4 = 64;
        }

        output = output +
           keyStr.charAt(enc1) +
           keyStr.charAt(enc2) +
           keyStr.charAt(enc3) +
           keyStr.charAt(enc4);
        chr1 = chr2 = chr3 = "";
        enc1 = enc2 = enc3 = enc4 = "";
     } while (i < input.length);

     return output;
  }

  function decode64(input) {
     var output = "";
     var chr1, chr2, chr3 = "";
     var enc1, enc2, enc3, enc4 = "";
     var i = 0;

     // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
     var base64test = /[^A-Za-z0-9\+\/\=]/g;
     if (base64test.exec(input)) {
        alert("There were invalid base64 characters in the input text.\n" +
              "Valid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='\n" +
              "Expect errors in decoding.");
     }
     input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

     do {
        enc1 = keyStr.indexOf(input.charAt(i++));
        enc2 = keyStr.indexOf(input.charAt(i++));
        enc3 = keyStr.indexOf(input.charAt(i++));
        enc4 = keyStr.indexOf(input.charAt(i++));

        chr1 = (enc1 << 2) | (enc2 >> 4);
        chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
        chr3 = ((enc3 & 3) << 6) | enc4;

        output = output + String.fromCharCode(chr1);

        if (enc3 != 64) {
           output = output + String.fromCharCode(chr2);
        }
        if (enc4 != 64) {
           output = output + String.fromCharCode(chr3);
        }

        chr1 = chr2 = chr3 = "";
        enc1 = enc2 = enc3 = enc4 = "";

     } while (i < input.length);

     return unescape(output);
  }
