/**

 * Magento

 *

 * NOTICE OF LICENSE

 *

 * This source file is subject to the Open Software License (OSL 3.0)

 * that is bundled with this package in the file LICENSE.txt.

 * It is also available through the world-wide-web at this URL:

 * http://opensource.org/licenses/osl-3.0.php

 * If you did not receive a copy of the license and are unable to

 * obtain it through the world-wide-web, please send an email

 * to license@magentocommerce.com so we can send you a copy immediately.

 *

 * @copyright  Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com)

 * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)

 */

VarienForm = Class.create();

VarienForm.prototype = {

    initialize: function(formId, firstFieldFocus){

        this.form       = $(formId);

        if (!this.form) {

            return;

        }

        this.cache      = $A();

        this.currLoader = false;

        this.currDataIndex = false;

        this.validator  = new Validation(this.form);

        this.elementFocus   = this.elementOnFocus.bindAsEventListener(this);

        this.elementBlur    = this.elementOnBlur.bindAsEventListener(this);

        this.childLoader    = this.onChangeChildLoad.bindAsEventListener(this);

        this.highlightClass = 'highlight';

        this.extraChildParams = '';

        this.firstFieldFocus= firstFieldFocus || false;

        this.bindElements();

        if(this.firstFieldFocus){

            try{

                Form.Element.focus(Form.findFirstElement(this.form))

            }

            catch(e){}

        }

    },



    submit : function(url){

        if(this.validator && this.validator.validate()){

             this.form.submit();

        }

        return false;

    },



    bindElements:function (){

        var elements = Form.getElements(this.form);

        for (var row in elements) {

            if (elements[row].id) {

                Event.observe(elements[row],'focus',this.elementFocus);

                Event.observe(elements[row],'blur',this.elementBlur);

            }

        }

    },



    elementOnFocus: function(event){

        var element = Event.findElement(event, 'fieldset');

        if(element.className){

            Element.addClassName(element, this.highlightClass);

        }

    },



    elementOnBlur: function(event){

        var element = Event.findElement(event, 'fieldset');

        if(element.className){

            Element.removeClassName(element, this.highlightClass);

        }

    },



    setElementsRelation: function(parent, child, dataUrl, first){

        if (parent=$(parent)) {

            // TODO: array of relation and caching

            if (!this.cache[parent.id]){

                this.cache[parent.id] = $A();

                this.cache[parent.id]['child']     = child;

                this.cache[parent.id]['dataUrl']   = dataUrl;

                this.cache[parent.id]['data']      = $A();

                this.cache[parent.id]['first']      = first || false;

            }

            Event.observe(parent,'change',this.childLoader);

        }

    },



    onChangeChildLoad: function(event){

        element = Event.element(event);

        this.elementChildLoad(element);

    },



    elementChildLoad: function(element, callback){

        this.callback = callback || false;

        if (element.value) {

            this.currLoader = element.id;

            this.currDataIndex = element.value;

            if (this.cache[element.id]['data'][element.value]) {

                this.setDataToChild(this.cache[element.id]['data'][element.value]);

            }

            else{

                new Ajax.Request(this.cache[this.currLoader]['dataUrl'],{

                        method: 'post',

                        parameters: {"parent":element.value},

                        onComplete: this.reloadChildren.bind(this)

                });

            }

        }

    },



    reloadChildren: function(transport){

        var data = eval('(' + transport.responseText + ')');

        this.cache[this.currLoader]['data'][this.currDataIndex] = data;

        this.setDataToChild(data);

    },



    setDataToChild: function(data){

        if (data.length) {

            var child = $(this.cache[this.currLoader]['child']);

            if (child){

                var html = '<select name="'+child.name+'" id="'+child.id+'" class="'+child.className+'" title="'+child.title+'" '+this.extraChildParams+'>';

                if(this.cache[this.currLoader]['first']){

                    html+= '<option value="">'+this.cache[this.currLoader]['first']+'</option>';

                }

                for (var i in data){

                    if(data[i].value) {

                        html+= '<option value="'+data[i].value+'"';

                        if(child.value && (child.value == data[i].value || child.value == data[i].label)){

                            html+= ' selected';

                        }

                        html+='>'+data[i].label+'</option>';

                    }

                }

                html+= '</select>';

                new Insertion.Before(child,html);

                Element.remove(child);

            }

        }

        else{

            var child = $(this.cache[this.currLoader]['child']);

            if (child){

                var html = '<input type="text" name="'+child.name+'" id="'+child.id+'" class="'+child.className+'" title="'+child.title+'" '+this.extraChildParams+'>';

                new Insertion.Before(child,html);

                Element.remove(child);

            }

        }



        this.bindElements();

        if (this.callback) {

            this.callback();

        }

    }

}



RegionUpdater = Class.create();

RegionUpdater.prototype = {

    initialize: function (countryEl, regionTextEl, regionSelectEl, regions, disableAction)

    {

        this.countryEl = $(countryEl);

        this.regionTextEl = $(regionTextEl);

        this.regionSelectEl = $(regionSelectEl);

        this.regions = regions;



        this.disableAction = (typeof disableAction=='undefined') ? 'hide' : disableAction;



        if (this.regionSelectEl.options.length<=1) {

            this.update();

        }



        Event.observe(this.countryEl, 'change', this.update.bind(this));

    },



    update: function()

    {

        if (this.regions[this.countryEl.value]) {

            var i, option, region, def;



            if (this.regionTextEl) {

                def = this.regionTextEl.value.toLowerCase();

                this.regionTextEl.value = '';

            }

            if (!def) {

                def = this.regionSelectEl.getAttribute('defaultValue');

            }



            this.regionSelectEl.options.length = 1;

            for (regionId in this.regions[this.countryEl.value]) {

                region = this.regions[this.countryEl.value][regionId];



                option = document.createElement('OPTION');

                option.value = regionId;

                option.text = region.name;



                if (this.regionSelectEl.options.add) {

                    this.regionSelectEl.options.add(option);

                } else {

                    this.regionSelectEl.appendChild(option);

                }



                if (regionId==def || region.name.toLowerCase()==def || region.code.toLowerCase()==def) {

                    this.regionSelectEl.value = regionId;

                }

            }



            if (this.disableAction=='hide') {

                if (this.regionTextEl) {

                    this.regionTextEl.style.display = 'none';

                }



                this.regionSelectEl.style.display = '';

            } else if (this.disableAction=='disable') {

                if (this.regionTextEl) {

                    this.regionTextEl.disabled = true;

                }

                this.regionSelectEl.disabled = false;

            }

            this.setMarkDisplay(this.regionSelectEl, true);

        } else {

            if (this.disableAction=='hide') {

                if (this.regionTextEl) {

                    this.regionTextEl.style.display = '';

                }

                this.regionSelectEl.style.display = 'none';

                Validation.reset(this.regionSelectEl);

            } else if (this.disableAction=='disable') {

                if (this.regionTextEl) {

                    this.regionTextEl.disabled = false;

                }

                this.regionSelectEl.disabled = true;

            } else if (this.disableAction=='nullify') {

                this.regionSelectEl.options.length = 1;

                this.regionSelectEl.value = '';

                this.regionSelectEl.selectedIndex = 0;

                this.lastCountryId = '';

            }

            this.setMarkDisplay(this.regionSelectEl, false);

        }

    },



    setMarkDisplay: function(elem, display){

        if(elem.parentNode){

            var marks = Element.getElementsByClassName(elem.parentNode, 'required');

            if(marks[0]){

                display ? marks[0].show() : marks[0].hide();

            }

        }

    }

}



Event.observe(window,'load', function() {

if( $('contactForm') ) {

var contactForm = new VarienForm('contactForm', true);

}

});

var old = 'changeme0';
function change(id)
{
  var i = id.selectedIndex;
  var temp = 'changeme' + i;
  var oldtemp = old;
  document.getElementById(oldtemp).className = 'hidebox';
  document.getElementById(temp).className = 'showbox';
  old = temp;
}


function swap(id)
{
  var j = id.selectedIndex;
  var temp = 0;
  for (i=0;i<=100;i++)
	{
	temp = 'No_Of_People1' + i;
	document.getElementById(temp).selectedIndex = j;
	}
}

function swap2(id)
{
  var j = id.selectedIndex;
  var temp = 0;
  for (i=0;i<=100;i++)
	{
	temp = 'No_Of_People2' + i;
	document.getElementById(temp).selectedIndex = j;
	}
}

