var getElementProcessor = 
{
    getElementsByTagName : function( parentElem, tagName )
    {
       var elements;        
       try { elements = parentElem.getElementsByTagName( tagName ); }
       catch( e ) { elements = []; this._getElementsByTagNameInternal( parentElem, tagName, elements ); }        
       return elements; 
    },
    
    _getElementsByTagNameInternal : function( parentElem, tagName )
    {
        var activeElem;            
        for( var x = 0; x < parentElem.childNodes.length; x++ )
        {
            activeElem = parentElem.childNodes[x];            
            if( activeElem.tagName === tagName ) { collection.push( activeElem ); }            
            if( activeElem.childNodes.length > 0 && activeElem.nodeType == 1 ) { this._getElementsByTagNameInternal( activeElem, tagName, collection ); }
        }
    }
}


function AjaxConnection(url) 
{
   this.connect=connect;
   this.uri=url;
} 


function connect(return_func)
{
    this.x=init_object();
    this.x.open("GET", this.uri,true);
    var self = this;
    this.x.onreadystatechange = function() {
            if (self.x.readyState != 4)
                    return;
            eval(return_func + '(self.x.responseText)');
            delete self.x;
    }
    this.x.setRequestHeader('Content-Type',
        'application/x-www-form-urlencoded');
    this.x.send('');
}

        
function init_object() {
var x;
try {
        x=new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
        try {
                x=new ActiveXObject("Microsoft.XMLHTTP");
        } catch (oc) {
                x=null;
        }
}      
if(!x && typeof XMLHttpRequest != "undefined")
        x = new XMLHttpRequest();
if (x)
        return x;
}


function callBack(content) {                
    document.getElementById('shopcart_form').innerHTML = content;
    init;
}

function callBack1(content) {
    document.getElementById('shopcartaction_form').innerHTML = content;
    init;
}

function callBack2(content) {
    document.getElementById('shopcart_info').innerHTML = content;
    init;
}

function callBack3(content) {
    document.getElementById('mainlayer_scroll').innerHTML = content;
    init;
}

function callBack4(content) {
    document.getElementById('navimenu').innerHTML = content;
    init;
}

function callBack5(content) {
    document.getElementById('navimainmenu').innerHTML = content;
    init;
}

function callBack6(content) {
    document.getElementById('maintop').innerHTML = content;
    init;
}

function callBack7(content) {
    document.getElementById('mainbody').innerHTML = content;
    init;
}

function callBack100(content) {
    document.getElementById('mainlayer_scroll').innerHTML = content;
    init;
}

function callBack101(content) {
    document.getElementById('maintophistory').innerHTML = content;
    init;
}

function callBack102(content) {
    document.getElementById('mainbottomhistory').innerHTML = content;
    init;
}

function callBack110(content) {
    document.getElementById('mainsearch').innerHTML = content;
    init;
}

function callBack120(content) {
    document.getElementById('maincalendar').innerHTML = content;
    init;
}

function callBack300(content) {
    document.getElementById('fotolayer').innerHTML = content;
    init;
}


function refreshShopCart(obj) {
  var getstr = "";
  var sourcestr = paramstr1 = paramstr2 = "";
  var searchstr1 = "item_id";
  var form_elements = obj.getElementsByTagName('input');
    
  for (i=0; i < form_elements.length; i++) {
      if (form_elements[i].type == 'hidden') {
            if (form_elements[i].name == 'item_id') {
                paramstr1 = "&item_id="+form_elements[i].value;
             }
      }
      
      if (form_elements[i].type == 'text') {
            sourcestr = form_elements[i].name;
        
            position = sourcestr.search(/quantity.+/)
            if (position != -1) {
                paramstr2 = "&item_qty="+form_elements[i].value;
           }
      }
            
      if (isNotEmpty(paramstr1)) {
            if (isNotEmpty(paramstr2)) {   
                if (obj.id == "shopcart_form") {
                    getstr = "?action=update_item" + paramstr1 + paramstr2;
      
                    connection = new AjaxConnection('shop_cartaction.php'+getstr);
                    connection.connect("callBack");
                }
                else if (obj.id == "shopcartaction_form") {
                    getstr = "?action=add_item" + paramstr1 + paramstr2;
      
                    connection = new AjaxConnection('shop_cartaction.php'+getstr);
                    connection.connect("callBack1");
                } 
             
                paramstr1 = "";
                paramstr2 = "";
            }
      }
  }
}


function deleteShopCartItem(obj) {
  var getstr = paramstr2 = "";
  var searchstr2 = "item_id";
  var paramstr1 = false;
  var form_elements = obj.getElementsByTagName('input');
    
  for (i=0; i < form_elements.length; i++) {
        if (form_elements[i].type == "hidden") {
            if (form_elements[i].name == searchstr2) {
                if (paramstr1 == true) {
                    paramstr2 = "&item_id="+form_elements[i].value;
                }
            }
        }

        if (form_elements[i].type == "checkbox") {
            sourcestr = form_elements[i].name;
            
            position = sourcestr.search(/status.+/)
            if (position != -1) {
                if (form_elements[i].checked) {
                    paramstr1 = true;
                }
            }
        }        
            
        if (paramstr1 == true) {
            if (isNotEmpty(paramstr2)) {
                getstr = "?action=del_item" + paramstr2;
                
                connection = new AjaxConnection('shop_cartaction.php'+getstr);
                connection.connect('callBack');
             
                paramstr1 = false;
                paramstr2 = "";
            }
        }
  }
}


function doAccountAction(actiontype, address_id) {
    switch (actiontype) 
    {
    case 'add_account':
        connection1 = new AjaxConnection("shop_account.php?address_action=1");
        connection1.connect("callBack3");
        break;

    case 'show_account':
        connection1 = new AjaxConnection("shop_account.php?address_action=2");
        connection1.connect("callBack3");
        break;

    case 'edit_account':
        connection1 = new AjaxConnection("shop_account.php?address_action=3&adress_id"+adress_id);
        connection1.connect("callBack3");
        break;
    }
}


function refreshShopCurrentCart(obj) {        
  connection1 = new AjaxConnection("shop_currentcart.php");
  connection1.connect("callBack");
}


function refreshShopInfo(obj) {
  connection2 = new AjaxConnection("shop_info.php");
  connection2.connect("callBack2");
}


function showLayout(actiontype, url) {
    switch (actiontype) 
    {
    case 'main_layout':
        connection6 = new AjaxConnection('top.php'+url);
        connection6.connect("callBack6");

        /* connection7 = new AjaxConnection('main.php'+url);
         connection7.connect("callBack7"); */
        break;
    }        
}

function showMainlayer(actiontype, url) {
    switch (actiontype) 
    {
    case 'shop_authentifaction':
        connection3 = new AjaxConnection('shop_auth.php'+url);
        connection3.connect("callBack3");
        break;

    case 'shop_currentcart':
        connection3 = new AjaxConnection('shop_currentcart.php'+url);
        connection3.connect("callBack3");
        break;
        
    case 'shop_checkout_sending':
        connection3 = new AjaxConnection('shop_checkout_sending.php'+url);
        connection3.connect("callBack3");
        break;

    case 'shop_checkout_payment':
        connection3 = new AjaxConnection('shop_checkout_payment.php'+url);
        connection3.connect("callBack3");
        break;

    case 'shop_checkout_confirm':
        connection3 = new AjaxConnection('shop_checkout_confirm.php'+url);
        connection3.connect("callBack3");
        break;
               
    case 'main_content':
        connection3 = new AjaxConnection('content.php'+url);
        connection3.connect("callBack3");

        showTopHistory(url);
        showBottomHistory(url);
        showSearch(url);
        break;

    case 'main_news':
        connection3 = new AjaxConnection('news.php'+url);
        connection3.connect("callBack3");

        showTopHistory(url);
        showBottomHistory(url);
        showSearch(url);
        showCalendar(url);
        break;
        
    case 'shop_content':
        connection3 = new AjaxConnection('shop_items.php'+url);
        connection3.connect("callBack3");
        showTopHistory(url);
        showBottomHistory(url);
        showSearch(url);
        break;
    }
}


function showNavigation(actiontype, url) {
    switch (actiontype) 
    {
    case 'shop_manu_navigation':
        connection4 = new AjaxConnection('shop_manu_navigation.php'+url);
        connection4.connect("callBack4");
        break;

    case 'shop_navigation':
        connection4 = new AjaxConnection('shop_manu_navigation.php'+url);
        connection4.connect("callBack4");
        break;

    case 'main_navigation':
        connection4 = new AjaxConnection('navigation.php'+url);
        connection4.connect("callBack4");
        break;

    case 'main_navigation1':
        connection4 = new AjaxConnection('navigation_type1.php'+url);
        connection4.connect("callBack5");

        connection5 = new AjaxConnection('navigation_type2.php'+url);
        connection5.connect("callBack4");
        break;
    }        
}

function showCommon(url) {
    connection100 = new AjaxConnection('common.php'+url);
    connection100.connect("callBack100");
}

function showTopHistory(url) {
    var maintophistory = MM_findObj("maintophistory");
    if (maintophistory != null) {
        connection101 = new AjaxConnection('history_top.php'+url);
        connection101.connect("callBack101");
    }
}

function showBottomHistory(url) {
    var mainbottomhistory = MM_findObj("mainbottomhistory");
    if (mainbottomhistory != null) {
        connection102 = new AjaxConnection('history_bottom.php'+url);
        connection102.connect("callBack102");
    }
}

function showSearch(url) {
    connection110 = new AjaxConnection('search.php'+url);
    connection110.connect("callBack110");
}

function showCalendar(url) {
    var maincalendar = MM_findObj("maincalendar");
    if (maincalendar != null) {
        connection120 = new AjaxConnection('calendar.php'+url);
        connection120.connect("callBack120");
    }
}


function isNotEmpty(str){
   re = /.+/;

   if(!str.match(re)){
      return false;
   }

   else{
      return true;
   }
}


function showAlbumItem(url) {
    var fotolayer = MM_findObj("fotolayer");
    if (fotolayer != null) { 
        connection300 = new AjaxConnection('/album/catalog_item.php'+url+'&preload=0');
        connection300.connect("callBack300");
    }
}

