/****************************************************************************
Copyright (c) 2009 The Wojo Group

thewojogroup.com
simplecartjs.com
http://github.com/thewojogroup/simplecart-js/tree/master

The MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
****************************************************************************/

var NextId=1,Custom="Custom",GoogleCheckout="GoogleCheckout",PayPal="PayPal",Email="Email",AustralianDollar=AUD="AUD",CanadianDollar=CAD="CAD",CzechKoruna=CZK="CZK",DanishKrone=DKK="DKK",Euro=EUR="EUR",HongKongDollar=HKD="HKD",HungarianForint=HUF="HUF",IsraeliNewSheqel=ILS="ILS",JapaneseYen=JPY="JPY",MexicanPeso=MXN="MXN",NorwegianKrone=NOK="NOK",NewZealandDollar=NZD="NZD",PolishZloty=PLN="PLN",PoundSterling=GBP="GBP",SingaporeDollar=SGD="SGD",SwedishKrona=SEK="SEK",SwissFranc=CHF="CHF",USDollar=USD="USD";
function Cart(){

	/* member variables */
	this.Version = '2.0.1';
	this.Shelf = new Shelf();
	this.items = {};
	this.isLoaded = false;
	this.pageIsReady = false;
	this.quantity = 0;
	this.total = 0;
	this.taxRate = 0;
	this.taxCost = 0;
	this.shippingFlatRate = 0;
	this.shippingTotalRate = 0;
	this.shippingQuantityRate = 0;
	this.shippingRate = 0;
	this.shippingCost = 0;
	this.currency = USD;
	this.checkoutTo = PayPal;
	this.email = "";
	this.merchantId	 = "";
	this.cartHeaders = ['Name','Price','Quantity','Total'];
	/* 
		cart headers: 
		you can set these to which ever order you would like, and the cart will display the appropriate headers
		and item info.  any field you have for the items in the cart can be used, and 'Total' will automatically 
		be price*quantity.  
		
		there are keywords that can be used:
			
			1) "_input" - the field will be a text input with the value set to the given field. when the user
				changes the value, it will update the cart.  this can be useful for quantity. (ie "Quantity_input")
			
			2) "increment" - a link with "+" that will increase the item quantity by 1
			
			3) "decrement" - a link with "-" that will decrease the item quantity by 1
			
			4) "remove" - a link that will remove the item from the cart 
			
			5) "_image" or "Image" - the field will be an img tag with the src set to the value. You can simply use "Image" if
				you set a field in the items called "Image".  If you have a field named something else, like "Thumb", you can add
				the "_image" to create the image tag (ie "Thumb_image").
				
			6) "_noHeader" - this will skip the header for that field (ie "increment_noHeader")
		
	
	*/
	
	


	/******************************************************
			add/remove items to cart  
 	 ******************************************************/

	this.add = function () {
		/* load cart values if not already loaded */
		if( !this.pageIsReady 	) { 
			this.initializeView(); 
			this.update();	
		}
		if( !this.isLoaded 		) { 
			this.load(); 
			this.update();	
		}
		
		var newItem = new CartItem();
		
		/* check to ensure arguments have been passed in */
		if( !arguments || arguments.length === 0 ){
			error( 'No values passed for item.');
			return;
		}
		var argumentArray = arguments;
		if( arguments[0] && typeof( arguments[0] ) != 'string' && typeof( arguments[0] ) != 'number'  ){ 
			argumentArray = arguments[0]; 
		} 
	
		newItem.parseValuesFromArray( argumentArray );
		newItem.checkQuantityAndPrice();
		
		/* if the item already exists, update the quantity */
		if( this.hasItem(newItem) ) {
			var id=this.hasItem(newItem);
			this.items[id].quantity= parseInt(this.items[id].quantity,10) + parseInt(newItem.quantity,10);
		} else {
			this.items[newItem.id] = newItem;
		}	
		
		this.update();
	};
	
	
	this.remove = function( id ){
		var tempArray = {};
		for( var item in this.items ){
			if( item != id ){ 
				tempArray[item] = this.items[item]; 
			}
		}
		this.items = tempArray;
	};
	
	
	this.empty = function () {
		simpleCart.items = {};
		simpleCart.update();
	};


	/******************************************************
			 checkout management 
     ******************************************************/

	this.checkout = function() {
		if( simpleCart.quantity === 0 ){
			error("Cart is empty");
			return;
		}
		switch( simpleCart.checkoutTo ){
			case PayPal:
				simpleCart.paypalCheckout();
				break;
			case GoogleCheckout:
				simpleCart.googleCheckout();
				break;
			case Email:
				simpleCart.emailCheckout();
				break;
			default:
				simpleCart.customCheckout();
				break;
		}
	};
	
	this.paypalCheckout = function() {
		
		var winpar = "scrollbars,location,resizable,status",
			strn  = "https://www.paypal.com/cgi-bin/webscr?cmd=_cart" +
		   			"&upload=1" +
		        	"&business=" + this.email + 
					"&currency_code=" + this.currency,
			counter = 1,
			itemsString = "";
			
		
		if( this.taxRate ){
			strn = strn + 
				"&tax_cart=" +  this.currencyStringForPaypalCheckout( this.taxCost );
		}
		
		for( var current in this.items ){
			var item = this.items[current];
			
			var optionsString = "";
			for( var field in item ){
				if( typeof(item[field]) != "function" && field != "id" && field != "price" && field != "quantity" && field != "name" /*&& field != "shipping"*/) {
					optionsString = optionsString + "&" + field + "=" + item[field] ; 
				}
			}
			optionsString = optionsString.substring(1);
			
			itemsString = itemsString 	+ "&item_name_" 	+ counter + "=" + item.name  +
									 	  "&item_number_" 	+ counter + "=" + counter +
										  "&quantity_"		+ counter + "=" + item.quantity +
										  "&amount_"		+ counter + "=" + this.currencyStringForPaypalCheckout( item.price ) + 
										  "&on0_" 			+ counter + "=" + "Options" + 
										  "&os0_"			+ counter + "=" + optionsString;
			counter++;
		}
		
		if( this.shipping() != 0){
			 itemsString = itemsString 	+ "&item_name_" 	+ counter + "=Envio"  +
									 	  "&item_number_" 	+ counter + "=" + counter +
										  "&quantity_"		+ counter + "=1" + 
										  "&amount_"		+ counter + "=" + this.currencyStringForPaypalCheckout( this.shippingCost );
		  
		}
		
		
		strn = strn + itemsString ;
        createCookie('rutacart', strn, 30 );
		window.top.location.href = strn;
		
	};

	this.googleCheckout = function() {
		if( this.currency != USD && this.currency != GBP ){
			error( "Google Checkout only allows the USD and GBP for currency.");
			return;
		} else if( this.merchantId === "" || this.merchantId === null || !this.merchantId ){
			error( "No merchant Id for google checkout supplied.");
			return;
		} 
		
		var form = document.createElement("form"),
			counter = 1;
		form.style.display = "none";
		form.method = "POST";
		form.action = "https://checkout.google.com/api/checkout/v2/checkoutForm/Merchant/" + 
						this.merchantId;
		form.acceptCharset = "utf-8";
		
		for( var current in this.items ){
			var item 				= this.items[current];
			form.appendChild( this.createHiddenElement( "item_name_" 		+ counter, item.name		) );
			form.appendChild( this.createHiddenElement( "item_quantity_" 	+ counter, item.quantity 	) );
			form.appendChild( this.createHiddenElement( "item_price_" 		+ counter, item.price		) );
			form.appendChild( this.createHiddenElement( "item_currency_" 	+ counter, this.currency 	) );
			form.appendChild( this.createHiddenElement( "item_tax_rate_" 	+ counter, this.taxRate 	) );
			form.appendChild( this.createHiddenElement( "_charset_"					 , ""				) );
			
			var descriptionString = "";
			
			for( var field in item){
				if( typeof( item[field] ) != "function" && 
									field != "id" 		&& 
									field != "quantity"	&& 
									field != "price" )
				{
						descriptionString = descriptionString + ", " + field + ": " + item[field];				
				}
			}
			descriptionString = descriptionString.substring( 1 );
			form.appendChild( this.createHiddenElement( "item_description_" + counter, descriptionString) );
		}
		
		document.body.appendChild( form );
		form.submit();
		document.body.removeChild( form );
	};
	
	
	
	this.emailCheckout = function() {
		return;
	};
	
	this.customCheckout = function() {
		return;
	};




	/******************************************************
				data storage and retrival 
	 ******************************************************/
	
	/* load cart from cookie */
	this.load = function () {
		/* initialize variables and items array */
		this.items = {};
		this.total = 0.00;
		this.quantity = 0;
		
		/* retrieve item data from cookie */
		if( readCookie('simpleCart') ){
			var data = unescape(readCookie('simpleCart')).split('++');
			for(var x=0, xlen=data.length;x<xlen;x++){
			
				var info = data[x].split('||');
				var newItem = new CartItem();
			
				if( newItem.parseValuesFromArray( info ) ){
					newItem.checkQuantityAndPrice();
					/* store the new item in the cart */
					this.items[newItem.id] = newItem;
				}
 			}
		}
		this.isLoaded = true;
	};
	
	
	
	/* save cart to cookie */
	this.save = function () {
		var dataString = "";
		for( var item in this.items ){
			dataString = dataString + "++" + this.items[item].print();
		}
		createCookie('simpleCart', dataString.substring( 2 ), 30 );
	};
	


	
		
	/******************************************************
				 view management 
	 ******************************************************/
	
	this.initializeView = function() {
		this.totalOutlets 			= getElementsByClassName('simpleCart_total');
		this.quantityOutlets 		= getElementsByClassName('simpleCart_quantity');
		this.cartDivs 				= getElementsByClassName('simpleCart_items');
		this.taxCostOutlets			= getElementsByClassName('simpleCart_taxCost');
		this.taxRateOutlets			= getElementsByClassName('simpleCart_taxRate');
		this.shippingCostOutlets	= getElementsByClassName('simpleCart_shippingCost');
		this.finalTotalOutlets		= getElementsByClassName('simpleCart_finalTotal');
		
		this.addEventToArray( getElementsByClassName('simpleCart_checkout') , simpleCart.checkout , "click");
		this.addEventToArray( getElementsByClassName('simpleCart_empty') 	, simpleCart.empty , "click" );
		
		this.Shelf.readPage();
			
		this.pageIsReady = true;
		
	};
	
	
	
	this.updateView = function() {
		this.updateViewTotals();
		if( this.cartDivs && this.cartDivs.length > 0 ){ 
			this.updateCartView(); 
		}
	};
	
	this.updateViewTotals = function() {
		var outlets = [ ["quantity"		, "none"		] , 
						["total"		, "currency"	] , 
						["shippingCost"	, "currency"	] ,
						["taxCost"		, "currency"	] ,
						["taxRate"		, "percentage"	] ,
						["finalTotal"	, "currency"	] ];
						
		for( var x=0,xlen=outlets.length; x<xlen;x++){
			
			var arrayName = outlets[x][0] + "Outlets",
				outputString;
				
			for( var element in this[ arrayName ] ){
				switch( outlets[x][1] ){
					case "none":
						outputString = "" + this[outlets[x][0]];
						break;
					case "currency":
						outputString = this.valueToCurrencyString( this[outlets[x][0]] );
						break;
					case "percentage":
						outputString = this.valueToPercentageString( this[outlets[x][0]] );
						break;
					default:
						outputString = "" + this[outlets[x][0]];
						break;
				}
				this[arrayName][element].innerHTML = "" + outputString;
			}
		}
	};
	
	this.updateCartView = function() {
		var newRows = [],
			x,newRow,item,current,header,newCell,info,outputValue,option,headerInfo;
		
		/* create headers row */
		newRow = document.createElement('div');
		for( header in this.cartHeaders ){
			newCell = document.createElement('div');
			headerInfo = this.cartHeaders[header].split("_");
			
			newCell.innerHTML = headerInfo[0];
			newCell.className = "item" + headerInfo[0];
			for(x=1,xlen=headerInfo.length;x<xlen;x++){
				if( headerInfo[x].toLowerCase() == "noheader" ){
					newCell.style.display = "none";
				}
			}
			newRow.appendChild( newCell );
			
		}
		newRow.className = "cartHeaders";
		newRows[0] = newRow;
		
		/* create a row for each item in the cart */
		x=1;
		for( current in this.items ){
			newRow = document.createElement('div');
			item = this.items[current];
			
			for( header in this.cartHeaders ){
				
				newCell = document.createElement('div');
				info = this.cartHeaders[header].split("_");
				
				switch( info[0].toLowerCase() ){
					case "total":
						outputValue = this.valueToCurrencyString(parseFloat(item.price)*parseInt(item.quantity,10) );
						break;
					case "increment":
						outputValue = this.valueToLink( "+" , "javascript:;" , "onclick=\"simpleCart.items[\'" + item.id + "\'].increment();\"" );
						break;
					case "decrement":
						outputValue = this.valueToLink( "-" , "javascript:;" , "onclick=\"simpleCart.items[\'" + item.id + "\'].decrement();\"" );
						break;
					case "remove":
						outputValue = this.valueToLink( "Quitar" , "javascript:;" , "onclick=\"simpleCart.items[\'" + item.id + "\'].remove();\"" );
						break;
					case "price":
						outputValue = this.valueToCurrencyString( item[ info[0].toLowerCase() ] ? item[info[0].toLowerCase()] : " " );
						break;
					default: 
						outputValue = item[ info[0].toLowerCase() ] ? item[info[0].toLowerCase()] : " ";
						break;
				}	
				
				for( var y=1,ylen=info.length;y<ylen;y++){
					option = info[y].toLowerCase();
					switch( option ){
						case "image":
						case "img":
							outputValue = this.valueToImageString( outputValue );		
							break;
						case "input":
							outputValue = this.valueToTextInput( outputValue , "onchange=\"simpleCart.items[\'" + item.id + "\'].set(\'" + outputValue + "\' , this.value);\""  );
							break;
						case "div":
						case "span":
						case "h1":
						case "h2":
						case "h3":
						case "h4":
						case "p":
							outputValue = this.valueToElement( option , outputValue , "" );
							break;
						case "noheader":
							break;
						default:
							error( "unkown header option: " + option );
							break;
					}
				
				}		  
				newCell.innerHTML = outputValue;
				newCell.className = "item" + info[0];
				newRow.appendChild( newCell );
			}			
			newRow.className = "itemContainer";
			newRows[x] = newRow;
			x++;
		}
		
		
		
		for( current in this.cartDivs ){
			
			/* delete current rows in div */
			var div = this.cartDivs[current];
			while( div.childNodes[0] ){
				div.removeChild( div.childNodes[0] );
			}
			
			for(var j=0, jLen = newRows.length; j<jLen; j++){
				div.appendChild( newRows[j] );
			}
			
			
		}
	};

	this.addEventToArray = function ( array , functionCall , theEvent ) {
		for( var outlet in array ){
			var element = array[outlet];
			if( element.addEventListener ) {
				element.addEventListener(theEvent, functionCall , false );
			} else if( element.attachEvent ) {
			  	element.attachEvent( "on" + theEvent, functionCall );
			}
		}
	};
	
	
	this.createHiddenElement = function ( name , value ){
		var element = document.createElement("input");
		element.type = "hidden";
		element.name = name;
		element.value = value;
		return element;
	};
	
	
	
	/******************************************************
				Currency management
	 ******************************************************/
	
	this.currencySymbol = function() {		
		switch(this.currency){
			case JPY:
				return "&yen;";
			case EUR:
				return "&euro;";
			case GBP:
				return "&pound;";
			case USD:
			case CAD:
			case AUD:
			case NZD:
			case HKD:
			case SGD:
				return "&#36;";
			default:
				return "";
		}
	};
	
	
	this.currencyStringForPaypalCheckout = function( value ){
		if( this.currencySymbol() == "&#36;" ){
			return "$" + parseFloat( value ).toFixed(2);
		} else {
			return "" + parseFloat(value ).toFixed(2);
		}
	};
	
	/******************************************************
				Formatting
	 ******************************************************/
	
	
	this.valueToCurrencyString = function( value ) {
		return parseFloat( value ).toCurrency( this.currencySymbol() );
	};
	
	this.valueToPercentageString = function( value ){
		return parseFloat( 100*value ) + "%";
	};
	
	this.valueToImageString = function( value ){
		if( value.match(/<\s*img.*src\=/) ){
			return value;
		} else {
			return "<img src=\"" + value + "\" />";
		}
	};
	
	this.valueToTextInput = function( value , html ){
		return "<input type=\"text\" value=\"" + value + "\" " + html + " />";
	};
	
	this.valueToLink = function( value, link, html){
		return "<a href=\"" + link + "\" " + html + " >" + value + "</a>";
	};
	
	this.valueToElement = function( type , value , html ){
		return "<" + type + " " + html + " > " + value + "</" + type + ">";
	};
	
	/******************************************************
				Duplicate management
	 ******************************************************/
	
	this.hasItem = function ( item ) {
		for( var current in this.items ) {
			var testItem = this.items[current];
			var matches = true;
			for( var field in item ){
				if( typeof( item[field] ) != "function"	&& 
					field != "quantity"  				&& 
					field != "id" 						){
					if( item[field] != testItem[field] ){
						matches = false;
					}
				}	
			}
			if( matches ){ 
				return current; 
			}
		}
		return false;
	};
	
	
	
	
	/******************************************************
				Cart Update managment
	 ******************************************************/
	
	this.update = function() {
		if( !simpleCart.isLoaded ){
			simpleCart.load();
		} 
		if( !simpleCart.pageIsReady ){
			simpleCart.initializeView();
		}
		this.updateTotals();
		this.updateView();
		this.save();
	};
	
	this.updateTotals = function() {
		this.total = 0 ;
		this.quantity  = 0;
		for( var current in this.items ){
			var item = this.items[current];
			if( item.quantity < 1 ){ 
				item.remove();
			} else if( item.quantity !== null && item.quantity != "undefined" ){
				this.quantity = parseInt(this.quantity,10) + parseInt(item.quantity,10); 
			}
			if( item.price ){ 
				this.total = parseFloat(this.total) + parseInt(item.quantity,10)*parseFloat(item.price); 
			}
		}
		this.shippingCost = this.shipping();
		this.taxCost = parseFloat(this.total)*this.taxRate;
		this.finalTotal = this.shippingCost + this.taxCost + this.total;
			
	};
	
	this.shipping = function(){
		if( parseInt(this.quantity,10)===0 )
			return 0;
		var shipping = 	parseFloat(this.shippingFlatRate) + 
					  	parseFloat(this.shippingTotalRate)*parseFloat(this.total) +
						parseFloat(this.shippingQuantityRate)*parseInt(this.quantity,10),
			nextItem,
			next;
		for(next in this.items){
			nextItem = this.items[next];
			if( nextItem.shipping ){
				if( typeof nextItem.shipping == 'function' ){
					shipping += parseFloat(nextItem.shipping());
				} else {
					shipping += parseFloat(nextItem.shipping);
				}
			}
		}
		
		return shipping;
	}
	
	this.initialize = function() {
		simpleCart.initializeView();
		simpleCart.load();
		simpleCart.update();
	};
				
}

/********************************************************************************************************
 *			Cart Item Object
 ********************************************************************************************************/

function CartItem() {
	this.id = "c" + NextId++;
}
	CartItem.prototype.set = function ( field , value ){
		field = field.toLowerCase();
		if( typeof( this[field] ) != "function" && field != "id" ){
			if( field == "quantity" ){
				value = value.replace( /[^(\d|\.)]*/gi , "" );
				value = value.replace(/,*/gi, "");
				value = parseInt(value,10);
			} else if( field == "price"){
				value = value.replace( /[^(\d|\.)]*/gi, "");
				value = value.replace(/,*/gi , "");
				value = parseFloat( value );
			}
			if( typeof(value) == "number" && isNaN( value ) ){
				error( "Improperly formatted input.");
			} else {
				this[field] = value;
				this.checkQuantityAndPrice();
			}			
		} else {
			error( "Cannot change " + field + ", this is a reserved field.");
		}
		simpleCart.update();
	};
	
	CartItem.prototype.increment = function(){
		this.quantity = parseInt(this.quantity,10) + 1;
		simpleCart.update();
	};
	
	CartItem.prototype.decrement = function(){
		if( parseInt(this.quanity,10) < 2 ){
			this.remove();
		} else {
			this.quantity = parseInt(this.quantity,10) - 1;
			simpleCart.update();
		}
	};
	
	CartItem.prototype.print = function () {
		var returnString = '';
		for( var field in this ) {
			if( typeof( this[field] ) != "function" ) {
				returnString+= escape(field) + "=" + escape(this[field]) + "||";
			}
		}
		return returnString.substring(0,returnString.length-2);
	};
	
	
	CartItem.prototype.checkQuantityAndPrice = function() {
		if( !this.price || this.quantity == null || this.quantity == 'undefined'){ 
			this.quantity = 1;
			error('No quantity for item.');
		} else {
			this.quantity = ("" + this.quantity).replace(/,*/gi, "" );
			this.quantity = parseInt( ("" + this.quantity).replace( /[^(\d|\.)]*/gi, "") , 10); 
			if( isNaN(this.quantity) ){
				error('Quantity is not a number.');
				this.quantity = 1;
			}
		}
				
		if( !this.price || this.price == null || this.price == 'undefined'){
			this.price=0.00;
			error('No price for item or price not properly formatted.');
		} else {
			this.price = ("" + this.price).replace(/,*/gi, "" );
			this.price = parseFloat( ("" + this.price).replace( /[^(\d|\.)]*/gi, "") ); 
			if( isNaN(this.price) ){
				error('Price is not a number.');
				this.price = 0.00;
			}
		}
	};
	
	
	CartItem.prototype.parseValuesFromArray = function( array ) {
		if( array && array.length && array.length > 0) {
			for(var x=0, xlen=array.length; x<xlen;x++ ){
			
				/* ensure the pair does not have key delimeters */
				array[x].replace(/||/, "| |");
				array[x].replace(/\+\+/, "+ +");
			
				/* split the pair and save the unescaped values to the item */
				var value = array[x].split('=');
				if( value.length>1 ){
					if( value.length>2 ){
						for(var j=2, jlen=value.length;j<jlen;j++){
							value[1] = value[1] + "=" + value[j];
						}
					}
					this[ unescape(value[0]).toLowerCase() ] = unescape(value[1]);
				}
			}
			return true;
		} else {
			return false;
		}
	};
	
	CartItem.prototype.remove = function() {
		simpleCart.remove(this.id);
		simpleCart.update();
	};
	


/********************************************************************************************************
 *			Shelf Object for managing items on shelf that can be added to cart
 ********************************************************************************************************/

function Shelf(){
	this.items = {};
}	
	Shelf.prototype.readPage = function () {
		this.items = {};
		var newItems = getElementsByClassName( "simpleCart_shelfItem" );
		for( var current in newItems ){
			var newItem = new ShelfItem();
			this.checkChildren( newItems[current] , newItem );
			this.items[newItem.id] = newItem;
		}
	};
	
	Shelf.prototype.checkChildren = function ( item , newItem) {
		
		for(var x=0;item.childNodes[x];x++){
			
			var node = item.childNodes[x];
			if( node.className && node.className.match(/item_/) ){
				
				var data=node.className.split('_');
				
				if( data[1] == "add" || data[1] == "Add" ){
					var tempArray = [];
					tempArray.push( node );
					var addFunction = simpleCart.Shelf.addToCart(newItem.id);
					simpleCart.addEventToArray( tempArray , addFunction , "click");
					node.id = newItem.id;
				} else {
					newItem[data[1]]  = node;
				}
			}		
			if( node.childNodes[0] ){ 
				this.checkChildren( node , newItem );	
			}	
		}
	};
	
	Shelf.prototype.empty = function () {
		this.items = {};
	};
	
	
	Shelf.prototype.addToCart = function ( id ) {
		return function(){
			if( simpleCart.Shelf.items[id]){
				simpleCart.Shelf.items[id].addToCart();
			} else {
				error( "Shelf item with id of " + id + " does not exist.");
			}
		};
	};
	

/********************************************************************************************************
 *			Shelf Item Object
 ********************************************************************************************************/


function ShelfItem(){
	this.id = "s" + NextId++;
}	
	ShelfItem.prototype.remove = function () {
		simpleCart.Shelf.items[this.id] = null;
	};
	
	
	ShelfItem.prototype.addToCart = function () {
		var outStrings = [],valueString;
		for( var field in this ){
			if( typeof( this[field] ) != "function" && field != "id" ){
				valueString = "";
				
				switch(field){
					case "price":
						if( this[field].value ){
							valueString = this[field].value; 
						} else if( this[field].innerHTML ) {
							valueString = this[field].innerHTML;
						}
						/* remove all characters from price except digits and a period */
						valueString = valueString.replace( /[^(\d|\.)]*/gi , "" );
						valueString = valueString.replace( /,*/ , "" );
						break;
					case "image":
						valueString = this[field].src;
						break;
					default:
						if( this[field].value ){
							valueString = this[field].value; 
						} else if( this[field].innerHTML ) {
							valueString = this[field].innerHTML;
						} else if( this[field].src ){
							valueString = this[field].src;
						} else {
							valueString = this[field];
						}
						break;
				}
				outStrings.push( field + "=" + valueString );
			}
		}
		
		simpleCart.add( outStrings );
	};
	


/********************************************************************************************************
 * Thanks to Peter-Paul Koch for these cookie functions (http://www.quirksmode.org/js/cookies.html)
 ********************************************************************************************************/
function createCookie(name,value,days) {
	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=/";
}

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);
}


//*************************************************************************************************
/*
	Developed by Robert Nyman, http://www.robertnyman.com
	Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/	
var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};


/********************************************************************************************************
 *  Helpers
 ********************************************************************************************************/


String.prototype.reverse=function(){return this.split("").reverse().join("");};
Number.prototype.withCommas=function(){var x=6,y=parseFloat(this).toFixed(2).toString().reverse();while(x<y.length){y=y.substring(0,x)+","+y.substring(x);x+=4;}return y.reverse();};
Number.prototype.toCurrency=function(){return(arguments[0]?arguments[0]:"$")+this.withCommas();};


/********************************************************************************************************
 * error management 
 ********************************************************************************************************/

function error( message ){
	try{ 
		console.log( message ); 
	}catch(err){ 
	//	alert( message );
	}
}


var provincias_1 = new Array('-', "Badakhshan", "Badghis", "Baghlan", "Balkh", "Bamian", "Farah", "Faryab", "Ghazni", "Ghowr", "Helmand", "Herat", "Jowzjan", "Kabol", "Kandahar", "Kapisa", "Khowst", "Konar", "Konar", "Kondoz", "Laghman", "Laghman", "Lowgar", "Nangarhar", "Nimruz", "Nurestan", "Oruzgan", "Paktia", "Paktia", "Paktika", "Parvan", "Samangan", "Sar-e Pol", "Takhar", "Vardak", "Zabol");
var provincias_2 = new Array('-', "Berat", "Diber", "Durres", "Elbasan", "Fier", "Gjirokaster", "Korce", "Kukes", "Lezhe", "Shkoder", "Tirane", "Vlore");
var provincias_3 = new Array('-', "Baden-Wberg Bayern", "Berlin", "Brandenburg", "Bremen", "Hamburg", "Hessen", "Mecklenburg-Vorpommern", "Niedersachsen", "Nordrhein-Westfalen", "Rheinland-Pfalz", "Saarland", "Sachsen", "Sachsen-Anhalt", "Schleswig-Holstein", "Thuringen");
var provincias_4 = new Array('-', "American Samoa (General)");
var provincias_5 = new Array('-', "Andorra la Vella", "Canillo", "Encamp", "Escaldes-Engordany", "La Massana", "Ordino", "Sant Julia de Loria", "Barbuda", "Saint George", "Saint John", "Saint Mary", "Saint Paul", "Saint Peter", "Saint Philip");
var provincias_6 = new Array('-', "Bengo", "Benguela", "Bie", "Cabinda", "Cuando Cubango", "Cuanza Norte", "Cuanza Sul", "Cunene", "Huambo", "Huila", "Luanda", "Luanda Province", "Lunda Norte", "Lunda Sul", "Malanje", "Moxico", "Uige", "Zaire");
var provincias_7 = new Array('-', "Anguilla (General)");
var provincias_8 = new Array('-', "Barbuda", "Saint George", "Saint John", "Saint Mary", "Saint Paul", "Saint Peter", "Saint Philip");
var provincias_9 = new Array('-', "Netherlands Antilles (General)");
var provincias_10 = new Array('-', "Antarctica (General)");
var provincias_11 = new Array('-', "Al Bahah", "Al Hudud ash Shamaliyah", "Al Jawf", "Al Jawf", "Al Madinah", "Al Qasim", "Al Qurayyat", "Ar Riyad", "Ash Sharqiyah", "Hail", "Jizan", "Makkah", "Najran", "Tabuk");
var provincias_12 = new Array('-', "Adrar", "Ain Defla", "Ain Temouchent", "Alger", "Annaba", "Batna", "Bechar", "Bejaia", "Biskra", "Blida", "Bordj Bou Arreridj", "Bouira", "Boumerdes", "Chlef", "Constantine", "Djelfa", "El Bayadh", "El Oued", "El Tarf", "Ghardaia", "Guelma", "Illizi", "Jijel", "Khenchela", "Laghouat", "Msila", "Mascara", "Medea", "Mila", "Mostaganem", "Naama", "Oran", "Ouargla", "Oum el Bouaghi", "Relizane", "Saida", "Setif", "Sidi Bel Abbes", "Skikda", "Souk Ahras", "Tamanghasset", "Tebessa", "Tiaret", "Tindouf", "Tipaza", "Tissemsilt", "Tizi Ouzou", "Tlemcen");
var provincias_13 = new Array('-', "Buenos Aires", "Catamarca", "Chaco", "Chubut", "Cordoba", "Corrientes", "Capital Federal", "Entre Rios", "Formosa", "Jujuy", "La Pampa", "La Rioja", "Mendoza", "Misiones", "Neuquen", "Rio Negro", "Salta", "San Juan", "San Luis", "Santa Cruz", "Santa Fe", "Santiago del Estero", "Tierra del Fuego", "Tucuman");
var provincias_14 = new Array('-', "Aragatsotn", "Ararat", "Armavir", "Gegharkunik", "Kotayk", "Lorri", "Shirak", "Syunik", "Tavush", "Vayots Dzor", "Yerevan");
var provincias_15 = new Array('-', "Aruba (General)");
var provincias_17 = new Array('-', "Australian Capital Territory", "New South Wales", "Northern Territory", "Queensland", "South Australia", "Tasmania", "Victoria", "Western Australia");
var provincias_18 = new Array('-', "Burgenland", "Karnten", "Niederosterreich", "Oberosterreich", "Salzburg", "Steiermark", "Tirol", "Vorarlberg", "Wien");
var provincias_19 = new Array('-', "Abseron", "Agcabadi", "Agdam", "Agdas", "Agstafa", "Agsu", "Ali Bayramli", "Astara", "Baki", "Balakan", "Barda", "Beylaqan", "Bilasuvar", "Cabrayil", "Calilabad", "Daskasan", "Davaci", "Fuzuli", "Gadabay", "Ganca", "Goranboy", "Goycay", "Haciqabul", "Imisli", "Ismayilli", "Kalbacar", "Kurdamir", "Lacin", "Lankaran", "Lankaran", "Lerik", "Masalli", "Mingacevir", "Naftalan", "Naxcivan", "Neftcala", "Oguz", "Qabala", "Qax", "Qazax", "Qobustan", "Quba", "Qubadli", "Qusar", "Saatli", "Sabirabad", "Saki", "Saki", "Salyan", "Samaxi", "Samkir", "Samux", "Siyazan", "Sumqayit", "Susa", "Susa", "Tartar", "Tovuz", "Ucar", "Xacmaz", "Xankandi", "Xanlar", "Xizi", "Xocali", "Xocavand", "Yardimli", "Yevlax", "Yevlax", "Zangilan", "Zaqatala", "Zardab");
var provincias_20 = new Array('-', "Acklins and Crooked Islands", "Bimini", "Cat Island", "Exuma", "Freeport", "Fresh Creek", "Governors Harbour", "Green Turtle Cay", "Harbour Island", "High Rock", "Inagua", "Kemps Bay", "Long Island", "Marsh Harbour", "Mayaguana", "New Providence", "Nichollstown and Berry Islands", "Ragged Island", "Rock Sound", "San Salvador and Rum Cay", "Sandy Point");
var provincias_21 = new Array('-', "Al Hadd", "Al Manamah", "Al Mintaqah al Gharbiyah", "Al Mintaqah al Wusta", "Al Mintaqah ash Shamaliyah", "Al Muharraq", "Ar Rifa", "Jidd Hafs", "Madinat", "Madinat Hamad", "Mintaqat Juzur Hawar", "Sitrah");
var provincias_22 = new Array('-', "Bagerhat", "Bandarban", "Barguna", "Barisal", "Barisal Division", "Bhola", "Bogra", "Brahmanbaria", "Chandpur", "Chapai Nawabganj", "Chattagram", "Chuadanga", "Comilla", "Coxs Bazar", "Dhaka", "Dhaka Division", "Dinajpur", "Faridpur", "Feni", "Gaibandha", "Gazipur", "Gopalganj", "Habiganj", "Jaipurhat", "Jamalpur", "Jessore", "Jhalakati", "Jhenaidah", "Khagrachari", "Khulna", "Khulna Division", "Kishorganj", "Kurigram", "Kushtia", "Laksmipur", "Lalmonirhat", "Madaripur", "Magura", "Manikganj", "Meherpur", "Moulavibazar", "Munshiganj", "Mymensingh", "Naogaon", "Narail", "Narayanganj", "Narsingdi", "Nator", "Netrakona", "Nilphamari", "Noakhali", "Pabna", "Panchagar", "Parbattya Chattagram", "Patuakhali", "Pirojpur", "Rajbari", "Rajshahi", "Rangpur", "Rajshahi Division", "Satkhira", "Shariyatpur", "Sherpur", "Sirajganj", "Sunamganj", "Sylhet", "Sylhet Division", "Tangail", "Thakurgaon");
var provincias_23 = new Array('-', "Christ Church", "Saint Andrew", "Saint George", "Saint James", "Saint John", "Saint Joseph", "Saint Lucy", "Saint Michael", "Saint Peter", "Saint Philip", "Saint Thomas");
var provincias_24 = new Array('-', "Belize", "Cayo", "Corozal", "Orange Walk", "Stann Creek", "Toledo");
var provincias_25 = new Array('-', "Atakora", "Atlantique", "Borgou", "Littoral Department", "Mono", "Oueme", "Zou");
var provincias_26 = new Array('-', "Devonshire", "Hamilton", "Hamilton", "Paget", "Pembroke", "Saint George", "Saint Georges", "Sandys", "Smiths", "Southampton", "Warwick");
var provincias_27 = new Array('-', "Brestskaya Voblasts", "Homyel skaya Voblasts", "Hrodzyenskaya Voblasts", "Mahilyowskaya Voblasts", "Minsk", "Minskaya Voblasts", "Vitsyebskaya Voblasts");
var provincias_28 = new Array('-', "Chuquisaca", "Cochabamba", "El Beni", "La Paz", "Oruro", "Pando", "Potosi", "Santa Cruz", "Tarija");
var provincias_29 = new Array('-', "Bosanska Dubica", "Federation of Bosnia and Herzegovina", "Republika Srpska");
var provincias_30 = new Array('-', "Central", "Chobe", "Ghanzi", "Kgalagadi", "Kgatleng", "Kweneng", "Ngamiland", "North-East", "South-East", "Southern");
var provincias_31 = new Array('-', "Bouvet Island (General)");
var provincias_32 = new Array('-', "Acre", "Alagoas", "Amapa", "Amazonas", "Bahia", "Ceara", "Distrito Federal", "Espirito Santo", "Goias", "Maranhao", "Mato Grosso", "Mato Grosso do Sul", "Minas Gerais", "Para", "Paraiba", "Parana", "Pernambuco", "Piaui", "Rio Grande do Norte", "Rio Grande do Sul", "Rio de Janeiro", "Rondonia", "Roraima", "Santa Catarina", "Sao Paulo", "Sergipe", "Tocantins");
var provincias_33 = new Array('-', "British Indian Ocean Territory (General)");
var provincias_34 = new Array('-', "Alibori", "Belait", "Brunei and Muara", "Collines", "Donga", "Kouffo", "Littoral", "Oueme", "Plateau", "Temburong", "Tutong", "Zou");
var provincias_35 = new Array('-', "Blagoevgrad", "Burgas", "Dobrich", "Gabrovo", "Grad Sofiya", "Khaskovo", "Kurdzhali", "Kyustendil", "Lovech", "Mikhaylovgrad", "Montana", "Pazardzhik", "Pernik", "Pleven", "Plovdiv", "Razgrad", "Ruse", "Shumen", "Silistra", "Sliven", "Smolyan", "Sofiya", "Stara Zagora", "Turgovishte", "Varna", "Veliko Turnovo", "Vidin", "Vratsa", "Yambol");
var provincias_36 = new Array('-', "Bale", "Bam", "Banwa", "Bazega", "Bougouriba", "Boulgou", "Boulkiemde", "Ganzourgou", "Gnagna", "Gourma", "Houet", "Ioba", "Kadiogo", "Kenedougou", "Komoe", "Komondjari", "Kompienga", "Kossi", "Koulpelogo", "Kouritenga", "Kourweogo", "Leraba", "Loroum", "Mouhoun", "Namentenga", "Naouri", "Nayala", "Noumbiel", "Oubritenga", "Oudalan", "Passore", "Poni", "Sanguie", "Sanmatenga", "Seno", "Sissili", "Soum", "Sourou", "Tapoa", "Tuy", "Yagha", "Yatenga", "Ziro", "Zondoma", "Zoundweogo");
var provincias_37 = new Array('-', "Bubanza", "Bujumbura", "Bururi", "Cankuzo", "Cibitoke", "Gitega", "Karuzi", "Kayanza", "Kirundo", "Makamba", "Muramvya", "Muyinga", "Mwaro", "Ngozi", "Rutana", "Ruyigi");
var provincias_38 = new Array('-', "Bumthang", "Chhukha", "Chirang", "Daga", "Geylegphug", "Ha", "Lhuntshi", "Mongar", "Paro", "Pemagatsel", "Punakha", "Samchi", "Samdrup", "Shemgang", "Tashigang", "Thimphu", "Tongsa", "Wangdi Phodrang");
var provincias_39 = new Array('-', "Antwerpen", "Brabant", "Brabant Wallon", "Brussels Hoofdstedelijk Gewest", "Hainaut", "Liege", "Limburg", "Luxembourg", "Namur", "Oost-Vlaanderen", "Vlaams-Brabant", "West-Vlaanderen");
var provincias_40 = new Array('-', "Boa Vista", "Brava", "Maio", "Mosteiros", "Paul", "Praia", "Ribeira Grande", "Sal", "Santa Catarina", "Santa Cruz", "Sao Domingos", "Sao Filipe", "Sao Miguel", "Sao Nicolau", "Sao Vicente", "Tarrafal");
var provincias_41 = new Array('-', "Batdambang", "Kampong Cham", "Kampong Chhnang", "Kampong Spoe", "Kampong Thum", "Kampot", "Kandal", "Kaoh Kong", "Kracheh", "Mondol Kiri", "Pailin", "Phnum Penh", "Pouthisat", "Preah Vihear", "Prey Veng", "Rotanokiri", "Siemreab-Otdar Meanchey", "Stoeng Treng", "Svay Rieng", "Takev");
var provincias_42 = new Array('-', "Adamaoua", "Centre", "Est", "Extreme-Nord", "Littoral", "Nord", "Nord-Ouest", "Ouest", "Sud", "Sud-Ouest");
var provincias_43 = new Array('-');
var provincias_45 = new Array('-', "Batha", "Biltine", "Borkou-Ennedi-Tibesti", "Chari-Baguirmi", "Guera", "Kanem", "Lac", "Logone Occidental", "Logone Oriental", "Mayo-Kebbi", "Moyen-Chari", "Ouaddai", "Salamat", "Tandjile");
var provincias_46 = new Array('-', "Aisen del General Carlos Ibanez del Campo", "Antofagasta", "Araucania", "Atacama", "Bio-Bio", "Coquimbo", "Libertador General Bernardo OHiggins", "Los Lagos", "Magallanes y de la Antartica Chilena", "Maule", "Region Metropolitana", "Tarapaca", "Valparaiso");
var provincias_47 = new Array('-', "Anhui", "Beijing", "Chongqing", "Fujian", "Gansu", "Guangdong", "Guangxi", "Guizhou", "Hainan", "Hebei", "Heilongjiang", "Henan", "Hubei", "Hunan", "Jiangsu", "Jiangxi", "Jilin", "Liaoning", "Nei Mongol", "Ningxia", "Qinghai", "Shaanxi", "Shandong", "Shanghai", "Shanxi", "Sichuan", "Tianjin", "Xinjiang", "Xizang", "Yunnan", "Zhejiang");
var provincias_48 = new Array('-', "Famagusta", "Kyrenia", "Larnaca", "Limassol", "Nicosia", "Paphos");
var provincias_49 = new Array('-', "Amazonas", "Antioquia", "Arauca", "Atlantico", "Bolivar", "Bolívar Department", "Boyaca", "Boyacá Department", "Caldas", "Caldas Department", "Caqueta", "Casanare", "Cauca", "Cesar", "Choco", "Cordoba", "Cundinamarca", "Distrito Especial", "Guainia", "Guaviare", "Huila", "La Guajira", "Magdalena", "Magdalena Department", "Meta", "Narino", "Norte de Santander", "Putumayo", "Quindio", "Risaralda", "San Andres y Providencia", "Santander", "Sucre", "Tolima", "Valle del Cauca", "Vaupes", "Vichada");
var provincias_50 = new Array('-', "Anjouan", "Grande Comore", "Moheli");
var provincias_51 = new Array('-', "Bouenza", "Brazzaville", "Cuvette", "Kouilou", "Lekoumou", "Likouala", "Niari", "Plateaux", "Pool", "Sangha");
var provincias_52 = new Array('-', "Chagang-do", "Hamgyong-bukto", "Hamgyong-namdo", "Hwanghae-bukto", "Hwanghae-namdo", "Kaesong-si", "Kangwon-do", "Najin Sonbong-si", "Nampo-si", "P yongan-bukto", "P yongan-namdo", "P yongyang-si", "Yanggang-do");
var provincias_53 = new Array('-', "Ch ungch ong-bukto", "Ch ungch ong-namdo", "Cheju-do", "Cholla-bukto", "Cholla-namdo", "Inch on-jikhalsi", "Kangwon-do", "Kwangju-jikhalsi", "Kyonggi-do", "Kyongsang-bukto", "Kyongsang-namdo", "Pusan-jikhalsi", "Seoul-tukpyolsi", "Taegu-jikhalsi", "Taejon-jikhalsi", "Ulsan-gwangyoksi");
var provincias_54 = new Array('-', "Alajuela", "Cartago", "Guanacaste", "Heredia", "Limon", "Puntarenas", "San Jose");
var provincias_55 = new Array('-', "Abengourou", "Abidjan", "Aboisso", "Adiake", "Adzope", "Agboville", "Alepe", "Bangolo", "Beoumi", "Biankouma", "Bocanda", "Bondoukou", "Bongouanou", "Bouafle", "Bouake", "Bouna", "Boundiali", "Dabakala", "Dabou", "Daloa", "Danane", "Daoukro", "Dimbokro", "Divo", "Duekoue", "Ferkessedougou", "Gagnoa", "Grand-Bassam", "Grand-Lahou", "Guiglo", "Haut-Sassandra Region", "Issia", "Jacqueville", "Katiola", "Korhogo", "Lagunes Region", "Lakota", "Man", "Mankono", "Mbahiakro", "Odienne", "Oume", "Sakassou", "San Pedro", "Sassandra", "Seguela", "Sinfra", "Soubre", "Tabou", "Tanda", "Tiassale", "Tiebissou", "Tingrela", "Touba", "Toulepleu", "Toumodi", "Vavoua", "Yamoussoukro", "Zuenoula");
var provincias_56 = new Array('-', "Bjelovarsko-Bilogorska", "Brodsko-Posavska", "Dubrovacko-Neretvanska", "Grad Zagreb", "Istarska", "Karlovacka", "Koprivnicko-Krizevacka", "Krapinsko-Zagorska", "Licko-Senjska", "Medimurska", "Osjecko-Baranjska", "Pozesko-Slavonska", "Primorsko-Goranska", "Sibensko-Kninska", "Sisacko-Moslavacka", "Splitsko-Dalmatinska", "Varazdinska", "Viroviticko-Podravska", "Vukovarsko-Srijemska", "Zadarska", "Zagrebacka");
var provincias_57 = new Array('-', "Camaguey", "Ciego de Avila", "Cienfuegos", "Ciudad de la Habana", "Granma", "Guantanamo", "Holguin", "Isla de la Juventud", "La Habana", "Las Tunas", "Matanzas", "Pinar del Rio", "Sancti Spiritus", "Santiago de Cuba", "Villa Clara");
var provincias_58 = new Array('-', "Arhus", "Bornholm", "Frederiksborg", "Fyn", "Kobenhavn", "Nordjylland", "Ribe", "Ringkobing", "Roskilde", "Sonderjylland", "Staden Kobenhavn", "Storstrom", "Vejle", "Vestsjalland", "Viborg");
var provincias_59 = new Array('-', "Dikhil", "Djibouti", "Obock", "Tadjoura");
var provincias_60 = new Array('-', "Saint Andrew", "Saint David", "Saint George", "Saint John", "Saint Joseph", "Saint Luke", "Saint Mark", "Saint Patrick", "Saint Paul", "Saint Peter");
var provincias_61 = new Array('-', "East Timor (General)");
var provincias_62 = new Array('-', "Azuay", "Bolivar", "Canar", "Carchi", "Chimborazo", "Cotopaxi", "El Oro", "Esmeraldas", "Galapagos", "Guayas", "Imbabura", "Loja", "Los Rios", "Manabi", "Morona-Santiago", "Napo", "Orellana", "Pastaza", "Pichincha", "Sucumbios", "Tungurahua", "Zamora-Chinchipe");
var provincias_63 = new Array('-', "Ad Daqahliyah", "Al Bahr al Ahmar", "Al Buhayrah", "Al Fayyum", "Al Gharbiyah", "Al Iskandariyah", "Al Isma iliyah", "Al Jizah", "Al Minufiyah", "Al Minya", "Al Qahirah", "Al Qalyubiyah", "Al Wadi al Jadid", "As Suways", "Ash Sharqiyah", "Aswan", "Asyut", "Bani Suwayf", "Bur Said", "Dumyat", "Janub Sina", "Kafr ash Shaykh", "Matruh", "Qina", "Shamal Sina", "Suhaj");
var provincias_64 = new Array('-', "Ahuachapan", "Cabanas", "Chalatenango", "Cuscatlan", "La Libertad", "La Paz", "La Union", "Morazan", "San Miguel", "San Salvador", "San Vicente", "Santa Ana", "Sonsonate", "Usulutan");
var provincias_65 = new Array('-', "Holy See (Vatican City State) (General)");
var provincias_66 = new Array('-', "Abu Dhabi", "Ajman", "Dubai", "Fujairah", "Ras Al Khaimah", "Sharjah", "Umm Al Quwain");
var provincias_67 = new Array('-', "Eritrea (General)");
var provincias_68 = new Array('-', "Banska Bystrica", "Bratislava", "Kosice", "Nitra", "Presov", "Trencin", "Trnava", "Zilina");
var provincias_69 = new Array('-', "Ajdovscina", "Beltinci", "Bled", "Bohinj", "Borovnica", "Bovec", "Brda", "Brezice", "Brezovica", "Celje", "Cerklje na Gorenjskem", "Cerknica", "Cerkno", "Crensovci", "Crna na Koroskem", "Crnomelj", "Divaca", "Dobrepolje", "Dobrova-Horjul-Polhov Gradec", "Dol pri Ljubljani", "Domzale", "Dornava", "Dravograd", "Duplek", "Gorenja Vas-Poljane", "Gorisnica", "Gornja Radgona", "Gornji Grad", "Gornji Petrovci", "Grosuplje", "Hrastnik", "Hrpelje-Kozina", "Idrija", "Ig", "Ilirska Bistrica", "Ivancna Gorica", "Izola-Isola", "Jesenice", "Jursinci", "Kamnik", "Kanal", "Kidricevo", "Kobarid", "Kobilje", "Kocevje", "Komen", "Koper-Capodistria", "Kozje", "Kranj", "Kranjska Gora", "Krsko", "Kungota", "Kuzma", "Lasko", "Lenart", "Litija", "Ljubljana", "Ljubno", "Ljutomer", "Logatec", "Loska Dolina", "Loski Potok", "Luce", "Lukovica", "Majsperk", "Maribor", "Medvode", "Menges", "Metlika", "Mezica", "Miren-Kostanjevica", "Mislinja", "Moravce", "Moravske Toplice", "Mozirje", "Murska Sobota", "Muta", "Naklo", "Nazarje", "Nova Gorica", "Novo Mesto", "Odranci", "Ormoz", "Osilnica", "Pesnica", "Piran", "Pivka", "Podcetrtek", "Postojna", "Preddvor", "Ptuj", "Puconci", "Racam", "Radece", "Radenci", "Radlje ob Dravi", "Radovljica", "Ribnica", "Rogaska Slatina", "Rogasovci", "Rogatec", "Ruse", "Semic", "Sencur", "Sentilj", "Sentjernej", "Sentjur pri Celju", "Sevnica", "Sezana", "Skocjan", "Skofja Loka", "Skofljica", "Slovenj Gradec", "Slovenska Bistrica", "Slovenske Konjice", "Smarje pri Jelsah", "Smartno ob Paki", "Sostanj", "Starse", "Store", "Sveti Jurij", "Tolmin", "Trbovlje", "Trebnje", "Trzic", "Turnisce", "Velenje", "Velike Lasce", "Videm", "Vipava", "Vitanje", "Vodice", "Vojnik", "Vrhnika", "Vuzenica", "Zagorje ob Savi", "Zalec", "Zavrc", "Zelezniki", "Ziri", "Zrece");
var provincias_70 = new Array('-', "Andalucia", "Aragon", "Asturias", "Canarias", "Cantabria", "Castilla y Leon", "Castilla-La Mancha", "Cataluna", "Comunidad Valenciana", "Extremadura", "Galicia", "Islas Baleares", "La Rioja", "Madrid", "Murcia", "Navarra", "Pais Vasco");
var provincias_71 = new Array('-', "Alabama", "Alaska", "American Samoa", "Arizona", "Arkansas", "California", "Colorado", "Connecticut", "Delaware", "District of Columbia", "Federated States of Micronesia", "Florida", "Georgia", "Guam", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky", "Louisiana", "Maine", "Marshall Islands", "Maryland", "Massachusetts", "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana", "Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico", "New York", "North Carolina", "North Dakota", "Northern Mariana Islands", "Ohio", "Oklahoma", "Oregon", "Palau", "Pennsylvania", "Puerto Rico", "Rhode Island", "South Carolina", "South Dakota", "Tennessee", "Texas", "Utah", "Vermont", "Virgin Islands", "Virginia", "Washington", "West Virginia", "Wisconsin", "Wyoming");
var provincias_72 = new Array('-', "Harjumaa", "Hiiumaa", "Ida-Virumaa", "Jarvamaa", "Jogevamaa", "Kohtla-Jarve", "Laane-Virumaa", "Laanemaa", "Narva", "Parnu", "Parnumaa", "Polvamaa", "Raplamaa", "Saaremaa", "Sillamae", "Tallinn", "Tartu", "Tartumaa", "Valgamaa", "Viljandimaa", "Vorumaa");
var provincias_73 = new Array('-', "Addis Abeba", "Adis Abeba", "Afar", "Afar", "Amara", "Amhara", "Benishangul", "Binshangul Gumuz", "Dire Dawa", "Gambela Hizboch", "Gambella", "Hareri Hizb", "Oromiya", "Somali", "Southern", "Sumale", "Tigray", "Tigray", "YeDebub Biheroch Bihereseboch na Hizboch");
var provincias_74 = new Array('-', "Central", "Eastern", "Northern", "Rotuma", "Western");
var provincias_75 = new Array('-', "Abra", "Agusan del Norte", "Agusan del Sur", "Aklan", "Albay", "Angeles", "Antique", "Aurora", "Bacolod", "Bago", "Baguio", "Bais", "Basilan", "Basilan City", "Bataan", "Batanes", "Batangas", "Batangas City", "Benguet", "Bohol", "Bukidnon", "Bulacan", "Butuan", "Cabanatuan", "Cadiz", "Cagayan", "Cagayan de Oro", "Calbayog", "Caloocan", "Camarines Norte", "Camarines Sur", "Camiguin", "Canlaon", "Capiz", "Catanduanes", "Cavite", "Cavite City", "Cebu", "Cebu City", "Cotabato", "Dagupan", "Danao", "Dapitan", "Davao", "Davao City", "Davao Oriental", "Davao del Sur", "Dipolog", "Dumaguete", "Eastern Samar", "General Santos", "Gingoog", "Ifugao", "Iligan", "Ilocos Norte", "Ilocos Sur", "Iloilo", "Iloilo City", "Iriga", "Isabela", "Kalinga-Apayao", "La Carlota", "La Union", "Laguna", "Lanao del Norte", "Lanao del Sur", "Laoag", "Lapu-Lapu", "Legaspi", "Leyte", "Lipa", "Lucena", "Maguindanao", "Mandaue", "Manila", "Marawi", "Marinduque", "Masbate", "Mindoro Occidental", "Mindoro Oriental", "Misamis Occidental", "Misamis Oriental", "Mountain", "Naga", "Negros Occidental", "Negros Oriental", "North Cotabato", "Northern Samar", "Nueva Ecija", "Nueva Vizcaya", "Olongapo", "Ormoc", "Oroquieta", "Ozamis", "Pagadian", "Palawan", "Palayan", "Pampanga", "Pangasinan", "Pasay", "Puerto Princesa", "Quezon", "Quezon City", "Quirino", "Rizal", "Romblon", "Roxas", "Samar", "San Carlos", "San Carlos", "San Jose", "San Pablo", "Silay", "Siquijor", "Sorsogon", "South Cotabato", "Southern Leyte", "Sultan Kudarat", "Sulu", "Surigao", "Surigao del Norte", "Surigao del Sur", "Tacloban", "Tagaytay", "Tagbilaran", "Tangub", "Tarlac", "Tawitawi", "Toledo", "Trece Martires", "Zambales", "Zamboanga", "Zamboanga del Norte", "Zamboanga del Sur");
var provincias_76 = new Array('-', "Eastern Finland", "Lapland", "Oulu", "Southern Finland", "Western Finland");
var provincias_77 = new Array('-', "Alsace", "Aquitaine", "Auvergne", "Basse-Normandie", "Bourgogne", "Bretagne", "Centre", "Champagne-Ardenne", "Corse", "Franche-Comte", "Haute-Normandie", "Ile-de-France", "Languedoc-Roussillon", "Limousin", "Lorraine", "Midi-Pyrenees", "Nord-Pas-de-Calais", "Pays de la Loire", "Picardie", "Poitou-Charentes", "Provence-Alpes-Cote d Azur", "Rhone-Alpes");
var provincias_78 = new Array('-', "Guyane Département");
var provincias_79 = new Array('-', "Polynésie Française Territoire");
var provincias_80 = new Array('-', "French Southern Territories (General)");
var provincias_81 = new Array('-', "Estuaire", "Haut-Ogooue", "Moyen-Ogooue", "Ngounie", "Nyanga", "Ogooue-Ivindo", "Ogooue-Lolo", "Ogooue-Maritime", "Woleu-Ntem");
var provincias_82 = new Array('-', "Banjul", "Lower River", "MacCarthy Island", "North Bank", "Upper River", "Western");
var provincias_83 = new Array('-', "Abashis Raioni", "Abkhazia", "Adigenis Raioni", "Ajaria", "Akhalgoris Raioni", "Akhalk alakis Raioni", "Akhalts ikhis Raioni", "Akhmetis Raioni", "Ambrolauris Raioni", "Aspindzis Raioni", "Baghdat is Raioni", "Bolnisis Raioni", "Borjomis Raioni", "Ch khorotsqus Raioni", "Ch okhatauris Raioni", "Chiat ura", "Dedop listsqaros Raioni", "Dmanisis Raioni", "Dushet is Raioni", "Gardabanis Raioni", "Gori", "Goris Raioni", "Gurjaanis Raioni", "Javis Raioni", "K arelis Raioni", "K ut aisi", "Kaspis Raioni", "Kharagaulis Raioni", "Khashuris Raioni", "Khobis Raioni", "Khonis Raioni", "Lagodekhis Raioni", "Lanch khut is Raioni", "Lentekhis Raioni", "Marneulis Raioni", "Martvilis Raioni", "Mestiis Raioni", "Mts khet is Raioni", "Ninotsmindis Raioni", "Onis Raioni", "Ozurget is Raioni", "P ot i", "Qazbegis Raioni", "Qvarlis Raioni", "Rust avi", "Sach kheris Raioni", "Sagarejos Raioni", "Samtrediis Raioni", "Senakis Raioni", "Sighnaghis Raioni", "T bilisi", "T elavis Raioni", "T erjolis Raioni", "T et ritsqaros Raioni", "T ianet is Raioni", "Tqibuli", "Ts ageris Raioni", "Tsalenjikhis Raioni", "Tsalkis Raioni", "Tsqaltubo", "Vanis Raioni", "Zestap onis Raioni", "Zugdidi", "Zugdidis Raioni");
var provincias_84 = new Array('-', "Ashanti", "Brong-Ahafo", "Central", "Eastern", "Greater Accra", "Northern", "Upper East", "Upper West", "Volta", "Western");
var provincias_85 = new Array('-', "Gibraltar (General)");
var provincias_86 = new Array('-', "Saint Andrew", "Saint David", "Saint George", "Saint John", "Saint Mark", "Saint Patrick");
var provincias_87 = new Array('-', "Aitolia kai Akarnania", "Akhaia", "Argolis", "Arkadhia", "Arta", "Attiki", "Dhodhekanisos", "Drama", "Evritania", "Evros", "Evvoia", "Florina", "Fokis", "Fthiotis", "Grevena", "Ilia", "Imathia", "Ioannina", "Iraklion", "Kardhitsa", "Kastoria", "Kavala", "Kefallinia", "Kerkira", "Khalkidhiki", "Khania", "Khios", "Kikladhes", "Kilkis", "Korinthia", "Kozani", "Lakonia", "Larisa", "Lasithi", "Lesvos", "Levkas", "Magnisia", "Messinia", "Pella", "Pieria", "Preveza", "Rethimni", "Rodhopi", "Samos", "Serrai", "Thesprotia", "Thessaloniki", "Trikala", "Voiotia", "Xanthi", "Zakinthos");
var provincias_88 = new Array('-', "Nordgronland", "Ostgronland", "Vestgronland");
var provincias_89 = new Array('-', "Guadeloupe Département");
var provincias_90 = new Array('-', "Guam (General)");
var provincias_91 = new Array('-', "Alta Verapaz", "Baja Verapaz", "Chimaltenango", "Chiquimula", "El Progreso", "Escuintla", "Guatemala", "Huehuetenango", "Izabal", "Jalapa", "Jutiapa", "Peten", "Quetzaltenango", "Quiche", "Retalhuleu", "Sacatepequez", "San Marcos", "Santa Rosa", "Solola", "Suchitepequez", "Totonicapan", "Zacapa");
var provincias_92 = new Array('-', "Beyla", "Boffa", "Boke", "Conakry", "Coyah", "Dabola", "Dalaba", "Dinguiraye", "Dubreka", "Faranah", "Forecariah", "Fria", "Gaoual", "Gueckedou", "Kankan", "Kerouane", "Kindia", "Kissidougou", "Koubia", "Koundara", "Kouroussa", "Labe", "Lelouma", "Lola", "Macenta", "Mali", "Mamou", "Mandiana", "Nzerekore", "Pita", "Siguiri", "Telimele", "Tougue", "Yomou");
var provincias_93 = new Array('-', "Annobon", "Bioko Norte", "Bioko Sur", "Centro Sur", "Kie-Ntem", "Litoral", "Wele-Nzas");
var provincias_94 = new Array('-', "Bafata", "Biombo", "Bissau", "Bolama", "Cacheu", "Gabu", "Oio", "Quinara", "Tombali");
var provincias_95 = new Array('-', "Barima-Waini", "Cuyuni-Mazaruni", "Demerara-Mahaica", "East Berbice-Corentyne", "Essequibo Islands-West Demerara", "Mahaica-Berbice", "Pomeroon-Supenaam", "Potaro-Siparuni", "Upper Demerara-Berbice", "Upper Takutu-Upper Essequibo");
var provincias_96 = new Array('-', "Artibonite", "Centre", "Grand Anse", "Nord", "Nord-Est", "Nord-Ouest", "Ouest", "Sud", "Sud-Est");
var provincias_97 = new Array('-', "Heard Island and McDonald Islands (General)");
var provincias_98 = new Array('-', "Drenthe", "Dronten", "Flevoland", "Friesland", "Gelderland", "Groningen", "Lelystad", "Limburg", "Noord-Brabant", "Noord-Holland", "Overijssel", "Overijssel", "Utrecht", "Zeeland", "Zuid-Holland", "Zuidelijke IJsselmeerpolders");
var provincias_99 = new Array('-', "Atlantida", "Choluteca", "Colon", "Comayagua", "Copan", "Cortes", "El Paraiso", "Francisco Morazan", "Gracias a Dios", "Intibuca", "Islas de la Bahia", "La Paz", "Lempira", "Ocotepeque", "Olancho", "Santa Barbara", "Valle", "Yoro");
var provincias_100 = new Array('-', "Hong Kong (General)");
var provincias_101 = new Array('-', "Bacs-Kiskun", "Baranya", "Bekes", "Bekescsaba", "Borsod-Abauj-Zemplen", "Budapest", "Csongrad", "Debrecen", "Dunaujvaros", "Eger", "Fejer", "Gyor", "Gyor-Moson-Sopron", "Hajdu-Bihar", "Heves", "Hodmezovasarhely", "Jasz-Nagykun-Szolnok", "Kaposvar", "Kecskemet", "Komarom-Esztergom", "Miskolc", "Nagykanizsa", "Nograd", "Nyiregyhaza", "Pecs", "Pest", "Somogy", "Sopron", "Szabolcs-Szatmar-Bereg", "Szeged", "Szekesfehervar", "Szolnok", "Szombathely", "Tatabanya", "Tolna", "Vas", "Veszprem", "Veszprem", "Zala", "Zalaegerszeg");
var provincias_102 = new Array('-', "Andaman and Nicobar Islands", "Andhra Pradesh", "Arunachal Pradesh", "Assam", "Bihar", "Chandigarh", "Chhattisgarh", "Dadra and Nagar Haveli", "Daman and Diu", "Delhi", "Goa", "Gujarat", "Haryana", "Himachal Pradesh", "Jammu and Kashmir", "Jharkhand", "Karnataka", "Kerala", "Lakshadweep", "Madhya Pradesh", "Maharashtra", "Manipur", "Meghalaya", "Mizoram", "Nagaland", "Orissa", "Pondicherry", "Punjab", "Rajasthan", "Sikkim", "Tamil Nadu", "Tripura", "Uttar Pradesh", "Uttaranchal", "West Bengal");
var provincias_103 = new Array('-', "Aceh", "Bali", "Banten", "Bengkulu", "Gorontalo", "Jakarta Raya", "Jambi", "Jawa Barat", "Jawa Tengah", "Jawa Timur", "Kalimantan Barat", "Kalimantan Selatan", "Kalimantan Tengah", "Kalimantan Timur", "Kepulauan Bangka Belitung", "Lampung", "Maluku", "Maluku Province", "Maluku Utara", "Nusa Tenggara Barat", "Nusa Tenggara Timur", "Papua", "Riau", "Sulawesi Selatan", "Sulawesi Tengah", "Sulawesi Tenggara", "Sulawesi Utara", "Sumatera Barat", "Sumatera Selatan", "Sumatera Utara", "Yogyakarta");
var provincias_104 = new Array('-', "Al Anbar", "Al Basrah", "Al Muthanna", "Al Qadisiyah", "An Najaf", "Arbil", "As Sulaymaniyah", "At Tamim", "Babil", "Baghdad", "Dahuk", "Dhi Qar", "Diyala", "Karbala", "Maysan", "Ninawa", "Salah ad Din", "Wasit");
var provincias_105 = new Array('-', "Carlow", "Cavan", "Clare", "Cork", "Donegal", "Dublin", "Galway", "Kerry", "Kildare", "Kilkenny", "Laois", "Leitrim", "Limerick", "Longford", "Louth", "Mayo", "Meath", "Monaghan", "Offaly", "Roscommon", "Sligo", "Tipperary", "Waterford", "Westmeath", "Wexford", "Wicklow");
var provincias_106 = new Array('-', "Cocos (Keeling) Islands (General)");
var provincias_107 = new Array('-', "Christmas Island (General)");
var provincias_108 = new Array('-', "Akranes", "Akureyri", "Arnessysla", "Austur-Bardastrandarsysla", "Austur-Hunavatnssysla", "Austur-Skaftafellssysla", "Borgarfjardarsysla", "Dalasysla", "Eyjafjardarsysla", "Gullbringusysla", "Hafnarfjordur", "Husavik", "Isafjordur", "Keflavik", "Kjosarsysla", "Kopavogur", "Myrasysla", "Neskaupstadur", "Nordur-Isafjardarsysla", "Nordur-Mulasysla", "Nordur-Tingeyjarsysla", "Olafsfjordur", "Rangarvallasysla", "Reykjavik", "Saudarkrokur", "Seydisfjordur", "Siglufjordur", "Skagafjardarsysla", "Snafellsnes- og Hnappadalssysla", "Strandasysla", "Sudur-Mulasysla", "Sudur-Tingeyjarsysla", "Vestmannaeyjar", "Vestur-Bardastrandarsysla", "Vestur-Hunavatnssysla", "Vestur-Isafjardarsysla", "Vestur-Skaftafellssysla");
var provincias_109 = new Array('-', "Creek", "Eastern", "Midland", "South Town", "Spot Bay", "Stake Bay", "West End", "Western");
var provincias_110 = new Array('-', "Cook Islands (General)");
var provincias_111 = new Array('-', "Færøerne");
var provincias_112 = new Array('-', "Falkland Islands (Malvinas) (General)");
var provincias_113 = new Array('-', "Marshall Islands (General)");
var provincias_114 = new Array('-', "Agalega Islands", "Black River", "Cargados Carajos", "Flacq", "Grand Port", "Moka", "Pamplemousses", "Plaines Wilhems", "Port Louis", "Riviere du Rempart", "Rodrigues", "Savanne");
var provincias_115 = new Array('-', "Central", "Guadalcanal", "Isabel", "Makira", "Malaita", "Temotu", "Western");
var provincias_116 = new Array('-', "South Georgia and the South Sandwich Islands (General)");
var provincias_117 = new Array('-', "Turks and Caicos Islands (General)");
var provincias_118 = new Array('-', "Wallis and Futuna (General)");
var provincias_119 = new Array('-', "HaDarom", "HaMerkaz", "HaZafon", "Hefa", "Tel Aviv", "Yerushalayim");
var provincias_120 = new Array('-', "Abruzzi", "Basilicata", "Calabria", "Campania", "Emilia-Romagna", "Friuli-Venezia Giulia", "Italy (General)", "Lazio", "Liguria", "Lombardia", "Marche", "Molise", "Piemonte", "Puglia", "Sardegna", "Sicilia", "Toscana", "Trentino-Alto Adige", "Umbria", "Valle d Aosta", "Veneto");
var provincias_121 = new Array('-', "Clarendon", "Hanover", "Kingston", "Manchester", "Portland", "Saint Andrew", "Saint Ann", "Saint Catherine", "Saint Elizabeth", "Saint James", "Saint Mary", "Saint Thomas", "Trelawny", "Westmoreland");
var provincias_122 = new Array('-', "Aichi", "Akita", "Aomori", "Chiba", "Ehime", "Fukui", "Fukuoka", "Fukushima", "Gifu", "Gumma", "Hiroshima", "Hokkaido", "Hyogo", "Ibaraki", "Ishikawa", "Iwate", "Kagawa", "Kagoshima", "Kanagawa", "Kochi", "Kumamoto", "Kyoto", "Mie", "Miyagi", "Miyazaki", "Nagano", "Nagasaki", "Nara", "Niigata", "Oita", "Okayama", "Okinawa", "Osaka", "Saga", "Saitama", "Shiga", "Shimane", "Shizuoka", "Tochigi", "Tokushima", "Tokyo", "Tottori", "Toyama", "Wakayama", "Yamagata", "Yamaguchi", "Yamanashi");
var provincias_123 = new Array('-', "Al Balqa", "Al Karak", "Al Mafraq", "Amman", "At Tafilah", "Az Zarqa", "Irbid", "Ma");
var provincias_124 = new Array('-', "Almaty", "Almaty City", "Aqmola", "", "Astana City", "Atyrau", "Bayqonyr", "East Kazakhstan", "Mangghystau", "North Kazakhstan", "Pavlodar", "Qaraghandy", "Qostanay", "Qyzylorda", "South Kazakhstan", "West Kazakhstan", "Zhambyl");
var provincias_125 = new Array('-', "Central", "Coast", "Eastern", "Nairobi Area", "North-Eastern", "Nyanza", "Rift Valley", "Western");
var provincias_126 = new Array('-', "Gilbert Islands", "Line Islands", "Phoenix Islands");
var provincias_127 = new Array('-', "Al Ahmadi", "Al Jahra", "Al Kuwayt", "Hawalli");
var provincias_128 = new Array('-', "Batken", "Bishkek", "Chuy", "Jalal-Abad", "Naryn", "Osh", "Osh", "Talas", "Ysyk-Kol");
var provincias_129 = new Array('-', "Attapu", "Champasak", "Houaphan", "Khammouan", "Louang Namtha", "Louangphrabang", "Oudomxai", "Phongsali", "Saravan", "Savannakhet", "Vientiane", "Xaignabouri", "Xiangkhoang");
var provincias_130 = new Array('-', "Aizkraukles", "Aluksnes", "Balvu", "Bauskas", "Daugavpils", "Daugavpils", "Dobeles", "Gulbenes", "Jelgava", "Jelgavas", "Jurmala", "Kuldigas", "Limbazu", "Ludzas", "Madonas", "Ogres", "Preilu", "Riga", "Rigas", "Saldus", "Talsu", "Tukuma", "Valkas", "Valmieras", "Ventspils", "Ventspils");
var provincias_131 = new Array('-', "Berea", "Butha-Buthe", "Leribe", "Mafeteng", "Maseru", "Mohales Hoek", "Mokhotlong", "Qachas Nek", "Quthing", "Thaba-Tseka");
var provincias_132 = new Array('-', "Bong", "Grand Bassa", "Grand Cape Mount", "Grand Jide", "Lofa", "Maryland", "Monrovia", "Montserrado", "Nimba", "Sino");
var provincias_133 = new Array('-', "Ajdabiya", "Al", "Al Fatih", "Al Jabal al Akhdar", "Al Jufrah", "Al Khums", "Al Kufrah", "An Nuqat al Khams", "Ash Shati", "Awbari", "Az Zawiyah", "Banghazi", "Darnah", "Ghadamis", "Gharyan", "Misratah", "Murzuq", "Sabha", "Sawfajjin", "Surt", "Tarabulus", "Tarhunah", "Tubruq", "Yafran", "Zlitan");
var provincias_134 = new Array('-', "Balzers", "Eschen", "Gamprin", "Mauren", "Planken", "Ruggell", "Schaan", "Schellenberg", "Triesen", "Triesenberg", "Vaduz");
var provincias_135 = new Array('-', "Alytaus Apskritis", "Kauno Apskritis", "Klaipedos Apskritis", "Marijampoles Apskritis", "Panevezio Apskritis", "Siauliu Apskritis", "Taurages Apskritis", "Telsiu Apskritis", "Utenos Apskritis", "Vilniaus Apskritis");
var provincias_136 = new Array('-', "Diekirch", "Grevenmacher", "Luxembourg");
var provincias_137 = new Array('-', "Beqaa", "Beyrouth", "Liban-Nord", "Liban-Sud", "Mont-Liban", "Nabatiye");
var provincias_138 = new Array('-', "Ilhas", "Macau");
var provincias_139 = new Array('-', "Aracinovo", "Bac", "Belcista", "Berovo", "Bistrica", "Bitola", "Blatec", "Bogdanci", "Bogomila", "Bogovinje", "Bosilovo", "Brvenica", "Cair", "Capari", "Caska", "Cegrane", "Centar", "Centar Zupa", "Cesinovo", "Cucer-Sandevo", "Debar", "Delcevo", "Delogozdi", "Demir Hisar", "Demir Kapija", "Dobrusevo", "Dolna Banjica", "Dolneni", "Dorce Petrov", "Drugovo", "Dzepciste", "Gazi Baba", "Gevgelija", "Gostivar", "Gradsko", "Ilinden", "Izvor", "Jegunovce", "Kamenjane", "Karbinci", "Karpos", "Kavadarci", "Kicevo", "Kisela Voda", "Klecevce", "Kocani", "Konce", "Kondovo", "Konopiste", "Kosel", "Kratovo", "Kriva Palanka", "Krivogastani", "Krusevo", "Kuklis", "Kukurecani", "Kumanovo", "Labunista", "Lipkovo", "Lozovo", "Lukovo", "Makedonska Kamenica", "Makedonski Brod", "Mavrovi Anovi", "Meseista", "Miravci", "Mogila", "Murtino", "Negotino", "Negotino-Polosko", "Novaci", "Novo Selo", "Oblesevo", "Ohrid", "Orasac", "Orizari", "Oslomej", "Pehcevo", "Petrovec", "Plasnica", "Podares", "Prilep", "Probistip", "Radovis", "Rankovce", "Resen", "Rosoman", "Rostusa", "Samokov", "Saraj", "Sipkovica", "Sopiste", "Sopotnica", "Srbinovo", "Star Dojran", "Staravina", "Staro Nagoricane", "Stip", "Struga", "Strumica", "Studenicani", "Suto Orizari", "Sveti Nikole", "Tearce", "Tetovo", "Topolcani", "Valandovo", "Vasilevo", "Veles", "Velesta", "Vevcani", "Vinica", "Vitoliste", "Vranestica", "Vrapciste", "Vratnica", "Vrutok", "Zajas", "Zelenikovo", "Zelino", "Zitose", "Zletovo", "Zrnovci", "Ilhas", "Macau");
var provincias_140 = new Array('-', "Antananarivo", "Antsiranana", "Fianarantsoa", "Mahajanga", "Toamasina", "Toliara");
var provincias_141 = new Array('-', "Johor", "Kedah", "Kelantan", "Labuan", "Melaka", "Negeri Sembilan", "Pahang", "Perak", "Perlis", "Pulau Pinang", "Sabah", "Sarawak", "Selangor", "Terengganu", "Wilayah Persekutuan");
var provincias_142 = new Array('-', "Balaka", "Blantyre", "Chikwawa", "Chiradzulu", "Chitipa", "Dedza", "Dowa", "Karonga", "Kasungu", "Likoma", "Lilongwe", "Machinga", "Mangochi", "Mchinji", "Mulanje", "Mwanza", "Mzimba", "Nkhata Bay", "Nkhotakota", "Nsanje", "Ntcheu", "Ntchisi", "Phalombe", "Rumphi", "Salima", "Thyolo", "Zomba");
var provincias_143 = new Array('-', "Aliff", "Baa", "Daalu", "Faafu", "Gaafu Aliff", "Gaafu Daalu", "Haa Aliff", "Haa Daalu", "Kaafu", "Laamu", "Laviyani", "Male", "Meemu", "Naviyani", "Noonu", "Raa", "Seenu", "Shaviyani", "Thaa", "Waavu");
var provincias_144 = new Array('-', "Malta (General)");
var provincias_145 = new Array('-', "Bamako", "Gao", "Kayes", "Kidal", "Koulikoro", "Mopti", "Segou", "Sikasso", "Tombouctou");
var provincias_146 = new Array('-', "Agadir", "Al Hoceima", "Azilal", "Ben Slimane", "Beni Mellal", "Boulemane", "Casablanca", "Chaouen", "El Jadida", "El Kelaa des Srarhna", "Er Rachidia", "Essaouira", "Fes", "Figuig", "Guelmim", "Ifrane", "Kenitra", "Khemisset", "Khenifra", "Khouribga", "Laayoune", "Larache", "Marrakech", "Meknes", "Nador", "Ouarzazate", "Oujda", "Rabat-Sale", "Safi", "Settat", "Sidi Kacem", "Tan-Tan", "Tanger", "Taounate", "Taroudannt", "Tata", "Taza", "Tetouan", "Tiznit");
var provincias_147 = new Array('-', "Martinique Département");
var provincias_148 = new Array('-', "Adrar", "Assaba", "Brakna", "Dakhlet Nouadhibou", "Gorgol", "Guidimaka", "Hodh Ech Chargui", "Hodh El Gharbi", "Inchiri", "Tagant", "Tiris Zemmour", "Trarza");
var provincias_149 = new Array('-', "Mayotte (General)");
var provincias_150 = new Array('-', "Chuuk", "Kosrae", "Pohnpei", "Yap");
var provincias_151 = new Array('-', "Balti", "Cahul", "Chisinau", "Edinet", "Gagauzia", "Lapusna", "Orhei", "Soroca", "Stinga Nistrului", "Tighina", "Ungheni");
var provincias_152 = new Array('-', "Arhangay", "Bayan-Olgiy", "Bayanhongor", "Bulgan", "Darhan", "Darhan Uul", "Dornod", "Dornogovi", "Dundgovi", "Dzavhan", "Erdenet", "Govi-Altay", "Govi-Sumber", "Hentiy", "Hovd", "Hovsgol", "Omnogovi", "Orhon", "Ovorhangay", "Selenge", "Suhbaatar", "Tov", "Ulaanbaatar", "Uvs");
var provincias_153 = new Array('-', "Saint Anthony", "Saint Georges", "Saint Peter");
var provincias_154 = new Array('-', "Cabo Delgado", "Gaza", "Inhambane", "Manica", "Maputo", "Nampula", "Niassa", "Sofala", "Tete", "Zambezia");
var provincias_155 = new Array('-', "Chin State", "Irrawaddy", "Kachin State", "Karan State", "Kayah State", "Magwe", "Mandalay", "Mon State", "Pegu", "Rakhine State", "Rangoon", "Sagaing", "Shan State", "Tenasserim", "Yangon");
var provincias_156 = new Array('-', "Aguascalientes", "Baja California", "Baja California Sur", "Campeche", "Chiapas", "Chihuahua", "Coahuila de Zaragoza", "Colima", "Distrito Federal", "Durango", "Guanajuato", "Guerrero", "Hidalgo", "Jalisco", "Mexico", "Michoacan de Ocampo", "Morelos", "Nayarit", "Nuevo Leon", "Oaxaca", "Puebla", "Queretaro de Arteaga", "Quintana Roo", "San Luis Potosi", "Sinaloa", "Sonora", "Tabasco", "Tamaulipas", "Tlaxcala", "Veracruz-Llave", "Yucatan", "Zacatecas");
var provincias_157 = new Array('-', "La Condamine", "Monaco", "Monte-Carlo");
var provincias_158 = new Array('-', "Bethanien", "Boesmanland", "Caprivi", "Caprivi Oos", "Damaraland", "Erongo", "Gobabis", "Grootfontein", "Hardap", "Hereroland Oos", "Hereroland Wes", "Kaokoland", "Karas", "Karasburg", "Karibib", "Kavango", "Keetmanshoop", "Khomas Region", "Kunene", "Luderitz", "Maltahohe", "Mariental", "Namaland", "Ohangwena", "Okahandja", "Okavango", "Omaheke", "Omaruru", "Omusati", "Oshana", "Oshikoto", "Otjiwarongo", "Otjozondjupa", "Outjo", "Owambo", "Rehoboth", "Swakopmund", "Tsumeb", "Windhoek");
var provincias_159 = new Array('-', "Aiwo", "Anabar", "Anetan", "Anibare", "Baiti", "Boe", "Buada", "Denigomodu", "Ewa", "Ijuw", "Meneng", "Nibok", "Uaboe", "Yaren");
var provincias_160 = new Array('-', "Bagmati", "Bheri", "Bagmati Zone", "Dhawalagiri", "Gandaki", "Janakpur", "Karnali", "Kosi", "Lumbini", "Mahakali", "Mechi", "Narayani", "Rapti", "Sagarmatha", "Seti");
var provincias_161 = new Array('-', "Boaco", "Carazo", "Chinandega", "Chontales", "Esteli", "Granada", "Jinotega", "Leon", "Madriz", "Managua", "Masaya", "Matagalpa", "Nueva Segovia", "Rio San Juan", "Rivas", "Zelaya");
var provincias_162 = new Array('-', "Abia", "Abuja Capital Territory", "Adamawa", "Akwa Ibom", "Anambra", "Bauchi", "Bayelsa", "Benue", "Borno", "Cross River", "Delta", "Ebonyi", "Edo", "Ekiti", "Enugu", "Gombe", "Imo", "Jigawa", "Kaduna", "Kano", "Katsina", "Kebbi", "Kogi", "Kwara", "Lagos", "Nassarawa", "Niger", "Ogun", "Ondo", "Ondo", "Osun", "Oyo", "Plateau", "Rivers", "Rivers", "Sokoto", "Taraba", "Yobe", "Zamfara");
var provincias_163 = new Array('-', "Niue (General)");
var provincias_164 = new Array('-', "Norfolk Island (General)");
var provincias_165 = new Array('-', "Northern Mariana Islands (General)");
var provincias_166 = new Array('-', "Akershus", "Aust-Agder", "Buskerud", "Finnmark", "Hedmark", "Hordaland", "More og Romsdal", "Nord-Trondelag", "Nordland", "Oppland", "Oslo", "Ostfold", "Rogaland", "Sogn og Fjordane", "Sor-Trondelag", "Telemark", "Troms", "Vest-Agder", "Vestfold");
var provincias_167 = new Array('-', "Nouvelle-Calédonie");
var provincias_168 = new Array('-', "Akaroa", "Amuri", "Ashburton", "Bay of Islands", "Bruce", "Buller", "Chatham Islands", "Cheviot", "Clifton", "Clutha", "Cook", "Dannevirke", "Egmont", "Eketahuna", "Ellesmere", "Eltham", "Eyre", "Featherston", "Franklin", "Golden Bay", "Great Barrier Island", "Grey", "Hauraki Plains", "Hawera", "Hawkes Bay", "Heathcote", "Hikurangi", "Hobson", "Hokianga", "Horowhenua", "Hurunui", "Hutt", "Inangahua", "Inglewood", "Kaikoura", "Kairanga", "Kiwitea", "Lake", "Mackenzie", "Malvern", "Manaia", "Manawatu", "Mangonui", "Maniototo", "Marlborough", "Masterton", "Matamata", "Mount Herbert", "Ohinemuri", "Opotiki", "Oroua", "Otamatea", "Otorohanga", "Oxford", "Pahiatua", "Paparua", "Patea", "Piako", "Pohangina", "Raglan", "Rangiora", "Rangitikei", "Rodney", "Rotorua", "Runanga", "Saint Kilda", "Silverpeaks", "Southland", "Stewart Island", "Stratford", "Strathallan", "Taranaki", "Taumarunui", "Taupo", "Tauranga", "Thames-Coromandel", "Tuapeka", "Vincent", "Waiapu", "Waiheke", "Waihemo", "Waikato", "Waikohu", "Waimairi", "Waimarino", "Waimate", "Waimate West", "Waimea", "Waipa", "Waipawa", "Waipukurau", "Wairarapa South", "Wairewa", "Wairoa", "Waitaki", "Waitomo", "Waitotara", "Wallace", "Wanganui", "Waverley", "Westland", "Whakatane", "Whangarei", "Whangaroa", "Woodville");
var provincias_169 = new Array('-', "Agadez", "Diffa", "Dosso", "Maradi", "Niamey", "Tahoua", "Zinder");
var provincias_170 = new Array('-', "Ad Dakhiliyah", "Al Batinah", "Al Wusta", "Ash Sharqiyah", "Az Zahirah", "Masqat", "Musandam", "Zufar");
var provincias_171 = new Array('-', "Azad Kashmir", "Balochistan", "Federally Administered Tribal Areas", "Islamabad", "North-West Frontier", "Northern Areas", "Punjab", "Sindh");
var provincias_172 = new Array('-', "Palau (General)");
var provincias_173 = new Array('-', "Palestinian Territory (General)");
var provincias_174 = new Array('-', "Bocas del Toro", "Chiriqui", "Cocle", "Colon", "Darien", "Herrera", "Los Santos", "Panama", "San Blas", "Veraguas");
var provincias_175 = new Array('-', "Central", "Chimbu", "East New Britain", "East Sepik", "Eastern Highlands", "Enga", "Gulf", "Madang", "Manus", "Milne Bay", "Morobe", "National Capital", "New Ireland", "North Solomons", "Northern", "Sandaun", "Southern Highlands", "West New Britain", "Western", "Western Highlands");
var provincias_176 = new Array('-', "Alto Paraguay", "Alto Parana", "Amambay", "Boqueron", "Caaguazu", "Caazapa", "Canindeyu", "Central", "Chaco", "Concepcion", "Cordillera", "Guaira", "Itapua", "Misiones", "Neembucu", "Nueva Asuncion", "Paraguari", "Presidente Hayes", "San Pedro");
var provincias_177 = new Array('-', "Amazonas", "Ancash", "Apurimac", "Arequipa", "Ayacucho", "Cajamarca", "Callao", "Cusco", "Huancavelica", "Huanuco", "Ica", "Junin", "La Libertad", "Lambayeque", "Lima", "Loreto", "Madre de Dios", "Moquegua", "Pasco", "Piura", "Puno", "San Martin", "Tacna", "Tumbes", "Ucayali");
var provincias_178 = new Array('-', "Pitcairn (General)");
var provincias_179 = new Array('-', "Biala Podlaska", "Bialystok", "Bielsko", "Bydgoszcz", "Chelm", "Ciechanow", "Czestochowa", "Dolnoslaskie", "Elblag", "Gdansk", "Gorzow", "Jelenia Gora", "Kalisz", "Katowice", "Kielce", "Konin", "Koszalin", "Krakow", "Krosno", "Kujawsko-Pomorskie", "Legnica", "Leszno", "Lodz", "Lodzkie", "Lomza", "Lubelskie", "Lublin", "Lubuskie", "Malopolskie", "Mazowieckie", "Nowy Sacz", "Olsztyn", "Opole", "Opolskie", "Ostroleka", "Pila", "Piotrkow", "Plock", "Podkarpackie", "Podlaskie", "Pomorskie", "Poznan", "Przemysl", "Radom", "Rzeszow", "Siedlce", "Sieradz", "Skierniewice", "Slaskie", "Slupsk", "Suwalki", "Swietokrzyskie", "Szczecin", "Tarnobrzeg", "Tarnow", "Torun", "Walbrzych", "Warminsko-Mazurskie", "Warszawa", "Wielkopolskie", "Wloclawek", "Wroclaw", "Zachodniopomorskie", "Zamosc", "Zielona Gora");
var provincias_180 = new Array('-', "Aveiro", "Azores", "Beja", "Braga", "Braganca", "Castelo Branco", "Coimbra", "Evora", "Faro", "Guarda", "Leiria", "Lisboa", "Madeira", "Portalegre", "Porto", "Santarem", "Setubal", "Viana do Castelo", "Vila Real", "Viseu");
var provincias_181 = new Array('-', "Puerto Rico (General)");
var provincias_182 = new Array('-', "Ad Dawhah", "Al Ghuwariyah", "Al Jumaliyah", "Al Khawr", "Al Wakrah", "Al Wakrah Municipality", "Ar Rayyan", "Jariyan al Batnah", "Madinat ach Shamal", "Umm Said", "Umm Salal");
var provincias_183 = new Array('-', "Aberdeen City", "Aberdeenshire", "Angus", "Antrim", "Ards", "Argyll and Bute", "Armagh", "Avon", "Ballymena", "Ballymoney", "Banbridge", "Barking and Dagenham", "Barnet", "Barnsley", "Bath and North East Somerset", "Bedfordshire", "Belfast", "Berkshire", "Bexley", "Birmingham", "Blackburn with Darwen", "Blackpool", "Blaenau Gwent", "Bolton", "Bournemouth", "Bracknell Forest", "Bradford", "Brent", "Bridgend", "Brighton and Hove", "Bristol, City of", "Bromley", "Buckinghamshire", "Bury", "Caerphilly", "Calderdale", "Cambridgeshire", "Camden", "Cardiff", "Carmarthenshire", "Carrickfergus", "Castlereagh", "Central", "Ceredigion", "Cheshire", "Clackmannanshire", "Cleveland", "Clwyd", "Coleraine", "Conwy", "Cookstown", "Cornwall", "Coventry", "Craigavon", "Croydon", "Cumbria", "Darlington", "Denbighshire", "Derby", "Derbyshire", "Derry", "Devon", "Doncaster", "Dorset", "Down", "Dudley", "Dumfries and Galloway", "Dundee City", "Dungannon", "Durham", "Dyfed", "Ealing", "East Ayrshire", "East Dunbartonshire", "East Lothian", "East Renfrewshire", "East Riding of Yorkshire", "East Sussex", "Edinburgh, City of", "Eilean Siar", "Enfield", "Essex", "Falkirk", "Fermanagh", "Fife", "Flintshire", "Gateshead", "Glasgow City", "Gloucestershire", "Grampian", "Greater London", "Greater Manchester", "Greenwich", "Gwent", "Gwynedd", "Hackney", "Halton", "Hammersmith and Fulham", "Hampshire", "Haringey", "Harrow", "Hartlepool", "Havering", "Hereford and Worcester", "Herefordshire", "Hertford", "Highland", "Hillingdon", "Hounslow", "Humberside", "Inverclyde", "Isle of Anglesey", "Isle of Wight", "Islington", "Kensington and Chelsea", "Kent", "Kingston upon Hull, City of", "Kingston upon Thames", "Kirklees", "Knowsley", "Lambeth", "Lancashire", "Larne", "Leeds", "Leicester", "Leicestershire", "Lewisham", "Limavady", "Lincolnshire", "Lisburn", "Liverpool", "London, City of", "Lothian", "Luton", "Magherafelt", "Manchester", "Medway", "Merseyside", "Merthyr Tydfil", "Merton", "Mid Glamorgan", "Middlesbrough", "Midlothian", "Milton Keynes", "Monmouthshire", "Moray", "Moyle", "Neath Port Talbot", "Newcastle upon Tyne", "Newham", "Newport", "Newry and Mourne", "Newtownabbey", "Norfolk", "North Ayrshire", "North Down", "North East Lincolnshire", "North Lanarkshire", "North Lincolnshire", "North Somerset", "North Tyneside", "North Yorkshire", "Northamptonshire", "Northumberland", "Nottingham", "Nottinghamshire", "Oldham", "Omagh", "Orkney", "Oxfordshire", "Pembrokeshire", "Perth and Kinross", "Peterborough", "Plymouth", "Poole", "Portsmouth", "Powys", "Reading", "Redbridge", "Redcar and Cleveland", "Renfrewshire", "Rhondda Cynon Taff", "Richmond upon Thames", "Rochdale", "Rotherham", "Rutland", "Salford", "Sandwell", "Scottish Borders", "The Sefton", "Sheffield", "Shetland Islands", "Shropshire", "Slough", "Solihull", "Somerset", "South Ayrshire", "South Glamorgan", "South Gloucestershire", "South Lanarkshire", "South Tyneside", "South Yorkshire", "Southampton", "Southend-on-Sea", "Southwark", "St. Helens", "Staffordshire", "Stirling", "Stockport", "Stockton-on-Tees", "Stoke-on-Trent", "Strabane", "Strathclyde", "Suffolk", "Sunderland", "Surrey", "Sutton", "Swansea", "Swindon", "Tameside", "Tayside", "Telford and Wrekin", "Thurrock", "Torbay", "Torfaen", "Tower Hamlets", "Trafford", "Tyne and Wear", "Vale of Glamorgan, The", "Wakefield", "Walsall", "Waltham Forest", "Wandsworth", "Warrington", "Warwickshire", "West Berkshire", "West Dunbartonshire", "West Glamorgan", "West Lothian", "West Midlands", "West Sussex", "West Yorkshire", "Westminster", "Wigan", "Wiltshire", "Windsor and Maidenhead", "Wirral", "Wokingham", "Wolverhampton", "Worcestershire", "Wrexham", "York");
var provincias_184 = new Array('-', "Bamingui-Bangoran", "Bangui", "Basse-Kotto", "Haut-Mbomou", "Haute-Kotto", "Kemo", "Lobaye", "Mambere-Kadei", "Mbomou", "Nana-Grebizi", "Nana-Mambere", "Ombella-Mpoko", "Ouaka", "Ouham", "Ouham-Pende", "Sangha-Mbaere", "Vakaga");
var provincias_185 = new Array('-', "Blansko", "Breclav", "Hlavni Mesto Praha", "Hradec Kralove", "Jablonec nad Nisou", "Jiein", "Jihlava", "Jihocesky Kraj", "Jihomoravsky Kraj", "Karlovarsky Kraj", "Kolin", "Kralovehradecky Kraj", "Liberec", "Liberecky Kraj", "Melnik", "Mlada Boleslav", "Moravskoslezsky Kraj", "Nachod", "Nymburk", "Olomoucky Kraj", "Pardubice", "Pardubicky Kraj", "Plzensky Kraj", "Semily", "Stredocesky Kraj", "Trutnov", "Ustecky Kraj", "Vysocina", "Zlinsky Kraj");
var provincias_186 = new Array('-', "Congo, The Democratic Republic of the (General)");
var provincias_187 = new Array('-', "Azua", "Baoruco", "Barahona", "Dajabon", "Distrito Nacional", "Duarte", "El Seibo", "Elias Pina", "Espaillat", "Hato Mayor", "Independencia", "La Altagracia", "La Romana", "La Vega", "Maria Trinidad Sanchez", "Monsenor Nouel", "Monte Cristi", "Monte Plata", "Pedernales", "Peravia", "Puerto Plata", "Salcedo", "Samana", "San Cristobal", "San Juan", "San Pedro De Macoris", "Sanchez Ramirez", "Santiago", "Santiago Rodriguez", "Valverde");
var provincias_188 = new Array('-', "Ardabil", "Azarbayjan-e Bakhtari", "Azarbayjan-e Khavari", "Bakhtaran", "Bushehr", "Chahar Mahall va Bakhtiari", "East Azarbaijan", "Esfahan", "Fars", "Gilan", "Golestan", "Hamadan", "Hormozgan", "Ilam", "Kerman", "Khorasan", "Khuzestan", "Kohkiluyeh va Buyer Ahmadi", "Kordestan", "Lorestan", "Markazi", "Markazi", "Mazandaran", "Mazandaran", "Qazvin", "Qom", "Semnan", "Sistan va Baluchestan", "Tehran", "Yazd", "Zanjan", "Zanjan");
var provincias_189 = new Array('-', "Butare", "Byumba", "Cyangugu", "Gikongoro", "Gisenyi", "Gitarama", "Kibungo", "Kibuye", "Kigali", "Ruhengeri");
var provincias_190 = new Array('-', "Alba", "Arad", "Arges", "Bacau", "Bihor", "Bistrita-Nasaud", "Botosani", "Braila", "Brasov", "Bucuresti", "Buzau", "Calarasi", "Caras-Severin", "Cluj", "Constanta", "Covasna", "Dambovita", "Dolj", "Galati", "Giurgiu", "Gorj", "Harghita", "Hunedoara", "Ialomita", "Iasi", "Ilfov", "Maramures", "Mehedinti", "Mures", "Neamt", "Olt", "Prahova", "Salaj", "Satu Mare", "Sibiu", "Suceava", "Teleorman", "Timis", "Tulcea", "Valcea", "Vaslui", "Vrancea");
var provincias_191 = new Array('-', "Adygeya, Republic of", "Aginsky Buryatsky AO", "Altaisky krai", "Amur", "Arkhangel sk", "Astrakhan", "Bashkortostan", "Belgorod", "Bryansk", "Buryat", "Chechnya", "Chechnya Republic", "Chelyabinsk", "Chita", "Chukot", "Chuvashia", "Dagestan", "Evenk", "Gorno-Altay", "Ingush", "Irkutsk", "Ivanovo", "JA", "Kabardin-Balkar", "Kaliningrad", "Kalmyk", "Kaluga", "Kamchatka", "Karachay-Cherkess", "Karelia", "Kemerovo", "Khabarovsk", "Khakass", "Khanty-Mansiy", "Kirov", "Komi", "Komi-Permyak", "Koryak", "Kostroma", "Krasnodar", "Krasnoyarsk", "Kurgan", "Kursk", "Leningrad", "Lipetsk", "Magadan", "Mariy-El", "Mordovia", "Moscow City", "Moskva", "Murmansk", "Nenets", "Nizhegorod", "North Ossetia", "Novgorod", "Novosibirsk", "Omsk", "Orel", "Orenburg", "Penza", "Perm", "Primor ye", "Pskov", "Rostov", "Ryazan", "Saint Petersburg City", "Sakha", "Sakhalin", "Samara", "Saratov", "Smolensk", "Stavropol", "Sverdlovsk", "Tambovskaya oblast", "Tatarstan", "Taymyr", "Tomsk", "Tula", "Tuva", "Tver", "Tyumen", "Udmurt", "Ul yanovsk", "Ust-Orda Buryat", "Vladimir", "Volgograd", "Vologda", "Voronezh", "Yamal-Nenets", "Yaroslavl", "Yevrey");
var provincias_192 = new Array('-', "Christ Church Nichola Town", "Saint Anne Sandy Point", "Saint George Basseterre", "Saint George Gingerland", "Saint James Windward", "Saint John Capisterre", "Saint John Figtree", "Saint Mary Cayon", "Saint Paul Capisterre", "Saint Paul Charlestown", "Saint Peter Basseterre", "Saint Thomas Lowland", "Saint Thomas Middle Island", "Trinity Palmetto Point");
var provincias_193 = new Array('-', "Saint-Pierre et Miquelon Collectivité Territoriale");
var provincias_194 = new Array('-', "Aiga-i-le-Tai", "Atua", "Fa", "Gaga", "Gagaifomauga", "Palauli", "Satupa", "Tuamasaga", "Va", "Vaisigano");
var provincias_195 = new Array('-', "Acquaviva", "Borgo Maggiore", "Chiesanuova", "Domagnano", "Faetano", "Fiorentino", "Monte Giardino", "San Marino", "Serravalle");
var provincias_196 = new Array('-', "Charlotte", "Grenadines", "Saint Andrew", "Saint David", "Saint George", "Saint Patrick");
var provincias_197 = new Array('-', "Ascension", "Saint Helena", "Tristan da Cunha");
var provincias_198 = new Array('-', "Anse-la-Raye", "Castries", "Choiseul", "Dauphin", "Dennery", "Gros-Islet", "Laborie", "Micoud", "Praslin", "Soufriere", "Vieux-Fort");
var provincias_199 = new Array('-', "Principe", "Sao Tome");
var provincias_200 = new Array('-', "Dakar", "Diourbel", "Fatick", "Kaolack", "Kolda", "Louga", "Saint-Louis", "Saint-Louis Region", "Tambacounda", "Thies", "Ziguinchor");
var provincias_201 = new Array('-', "Kosovo", "Vojvodina");
var provincias_202 = new Array('-', "Anse Boileau", "Anse Etoile", "Anse Louis", "Anse Royale", "Anse aux Pins", "Baie Lazare", "Baie Sainte Anne", "Beau Vallon", "Bel Air", "Bel Ombre", "Cascade", "Glacis", "Grand Anse", "Grand Anse", "La Digue", "La Riviere Anglaise", "Mont Buxton", "Mont Fleuri", "Plaisance", "Pointe La Rue", "Port Glaud", "Saint Louis", "Takamaka");
var provincias_203 = new Array('-', "Eastern", "Northern", "Southern", "Western Area");
var provincias_204 = new Array('-', "Singapore (General)");
var provincias_205 = new Array('-', "Al Hasakah", "Al Ladhiqiyah", "Al Qunaytirah", "Ar Raqqah", "As Suwayda", "Dar", "Dayr az Zawr", "Dimashq", "Halab", "Hamah", "Hims", "Idlib", "Rif Dimashq", "Tartus");
var provincias_206 = new Array('-', "Bakool", "Banaadir", "Bari", "Bay", "Galguduud", "Gedo", "Hiiraan", "Jubbada Dhexe", "Jubbada Hoose", "Mudug", "Nugaal", "Sanaag", "Shabeellaha Dhexe", "Shabeellaha Hoose", "Togdheer", "Woqooyi Galbeed");
var provincias_207 = new Array('-', "Amparai", "Anuradhapura", "Badulla", "Batticaloa", "Central Province", "Colombo", "Galle", "Gampaha", "Hambantota", "Jaffna", "Kalutara", "Kandy", "Kegalla", "Kurunegala", "Mannar", "Matale", "Matara", "Moneragala", "Mullaittivu", "North Central Province", "North Eastern Province", "North Western Province", "Nuwara Eliya", "Polonnaruwa", "Puttalam", "Ratnapura", "Sabaragamuwa Province", "Southern Province", "Trincomalee", "Uva Province", "Vavuniya", "Western Province");
var provincias_208 = new Array('-', "Hhohho", "Lubombo", "Manzini", "Praslin", "Shiselweni");
var provincias_209 = new Array('-', "Eastern Cape", "Free State", "Gauteng", "KwaZulu-Natal", "Limpopo", "Mpumalanga", "North-West", "Northern Cape", "Western Cape");
var provincias_210 = new Array('-', "Al Istiwaiyah", "Al Khartum", "Al Wusta", "Ash Shamaliyah", "Ash Sharqiyah", "Bahr al Ghazal", "Darfur", "Kurdufan");
var provincias_211 = new Array('-', "Alvsborgs Lan", "Blekinge Lan", "Dalarnas Lan", "Gavleborgs Lan", "Goteborgs och Bohus Lan", "Gotlands Lan", "Hallands Lan", "Jamtlands Lan", "Jonkopings Lan", "Kalmar Lan", "Kristianstads Lan", "Kronobergs Lan", "Malmohus Lan", "Norrbottens Lan", "Orebro Lan", "Ostergotlands Lan", "Skane Lan", "Skaraborgs Lan", "Sodermanlands Lan", "Stockholms Lan", "Uppsala Lan", "Varmlands Lan", "Vasterbottens Lan", "Vasternorrlands Lan", "Vastmanlands Lan", "Vastra Gotaland");
var provincias_212 = new Array('-', "Aargau", "Ausser-Rhoden", "Basel-Landschaft", "Basel-Stadt", "Bern", "Fribourg", "Geneve", "Glarus", "Graubunden", "Inner-Rhoden", "Jura", "Luzern", "Neuchatel", "Nidwalden", "Obwalden", "Sankt Gallen", "Schaffhausen", "Schwyz", "Solothurn", "Thurgau", "Ticino", "Uri", "Valais", "Vaud", "Zug", "Zurich");
var provincias_213 = new Array('-', "Brokopondo", "Commewijne", "Coronie", "Marowijne", "Nickerie", "Para", "Paramaribo", "Saramacca", "Sipaliwini", "Wanica");
var provincias_214 = new Array('-', "Svalbard and Jan Mayen (General)");
var provincias_215 = new Array('-', "Ang Thong", "Buriram", "Chachoengsao", "Chai Nat", "Chaiyaphum", "Chanthaburi", "Chiang Mai", "Chiang Rai", "Chon Buri", "Chumphon", "Kalasin", "Kamphaeng Phet", "Kanchanaburi", "Khon Kaen", "Krabi", "Krung Thep", "Lampang", "Lamphun", "Loei", "Lop Buri", "Mae Hong Son", "Maha Sarakham", "Mukdahan", "Nakhon Nayok", "Nakhon Pathom", "Nakhon Phanom", "Nakhon Ratchasima", "Nakhon Sawan", "Nakhon Si Thammarat", "Nan", "Narathiwat", "Nong Khai", "Nonthaburi", "Pathum Thani", "Pattani", "Phangnga", "Phatthalung", "Phayao", "Phetchabun", "Phetchaburi", "Phichit", "Phitsanulok", "Phra Nakhon Si Ayutthaya", "Phrae", "Phuket", "Prachin Buri", "Prachuap Khiri Khan", "Ranong", "Ratchaburi", "Rayong", "Roi Et", "Sakon Nakhon", "Samut Prakan", "Samut Sakhon", "Samut Songkhram", "Saraburi", "Satun", "Sing Buri", "Sisaket", "Songkhla", "Sukhothai", "Suphan Buri", "Surat Thani", "Surin", "Tak", "Trang", "Trat", "Ubon Ratchathani", "Ubon Ratchathani Province", "Udon Thani", "Uthai Thani", "Uttaradit", "Yala", "Yasothon");
var provincias_216 = new Array('-', "Fu-chien", "Kao-hsiung", "T ai-pei", "T ai-wan");
var provincias_217 = new Array('-', "Khatlon", "Kuhistoni Badakhshon", "Sughd");
var provincias_218 = new Array('-', "Arusha", "Arusha Region", "Dar es Salaam", "Dodoma", "Iringa", "Kagera", "Kigoma", "Kilimanjaro", "Lindi", "Mara", "Mbeya", "Morogoro", "Mtwara", "Mwanza", "Pemba North", "Pemba South", "Pwani", "Rukwa", "Ruvuma", "Shinyanga", "Singida", "Tabora", "Tanga", "Zanzibar Central", "Zanzibar North", "Zanzibar Urban");
var provincias_219 = new Array('-', "Amlame", "Aneho", "Atakpame", "Badou", "Bafilo", "Bassar", "Dapaong", "Kante", "Klouto", "Kpagouda", "Lama-Kara", "Lome", "Mango", "Maritime Region", "Niamtougou", "Notse", "Sotouboua", "Tabligbo", "Tchamba", "Tchaoudjo", "Tsevie", "Vogan");
var provincias_220 = new Array('-', "Ha", "Tongatapu", "Vava");
var provincias_221 = new Array('-', "Tokelau (General)");
var provincias_222 = new Array('-', "Arima", "Caroni", "Mayaro", "Nariva", "Port-of-Spain", "Saint Andrew", "Saint David", "Saint George", "Saint Patrick", "San Fernando", "Tobago", "Victoria");
var provincias_223 = new Array('-', "Ahal", "Balkan", "Dashoguz", "Lebap", "Mary");
var provincias_224 = new Array('-', "Adana", "Adiyaman", "Afyon", "Agri", "Aksaray", "Amasya", "Ankara", "Antalya", "Ardahan", "Artvin", "Aydin", "Balikesir", "Bartin", "Batman", "Bayburt", "Bilecik", "Bingol", "Bitlis", "Bolu", "Burdur", "Bursa", "Canakkale", "Cankiri", "Corum", "Denizli", "Diyarbakir", "Duzce", "Edirne", "Elazig", "Erzincan", "Erzurum", "Eskisehir", "Gaziantep", "Giresun", "Gumushane", "Hakkari", "Hatay", "Icel", "Igdir", "Isparta", "Istanbul", "Izmir", "Kahramanmaras", "Karabuk", "Karaman", "Kars", "Kastamonu", "Kayseri", "Kilis", "Kirikkale", "Kirklareli", "Kirsehir", "Kocaeli", "Konya", "Kutahya", "Malatya", "Manisa", "Mardin", "Mugla", "Mus", "Nevsehir", "Nigde", "Ordu", "Osmaniye", "Rize", "Sakarya", "Samsun", "Sanliurfa", "Siirt", "Sinop", "Sirnak", "Sivas", "Tekirdag", "Tokat", "Trabzon", "Tunceli", "Usak", "Van", "Yalova", "Yozgat", "Zonguldak");
var provincias_225 = new Array('-', "Tuvalu (General)");
var provincias_226 = new Array('-', "Al Mahdiyah", "Al Munastir", "Al Qasrayn", "Al Qayrawan", "Ariana", "Ariana Governorate", "Bajah", "Banzart", "Bin", "Jundubah", "Kef", "Madanin", "Manouba", "Nabul", "Qabis", "Qafsah", "Qibili", "Safaqis", "Sidi Bu Zayd", "Silyanah", "Susah", "Tatawin", "Tawzar", "Tunis", "Zaghwan");
var provincias_227 = new Array('-', "Cherkas ka Oblast", "Chernihivska Oblast", "Chernivets ka Oblast", "Dnipropetrovs ka Oblast", "Donets ka Oblast", "Ivano-Frankivs ka Oblast", "Kharkivs ka Oblast", "Khersons ka Oblast", "Khmel nyts ka Oblast", "Kirovohrads ka Oblast", "Krym", "Kyyiv", "Kyyivs ka Oblast", "L vivs ka Oblast", "Luhans ka Oblast", "Mykolayivs ka Oblast", "Odes ka Oblast", "Poltavs ka Oblast", "Rivnens ka Oblast", "Sevastopol", "Sums ka Oblast", "Ternopils ka Oblast", "Vinnyts ka Oblast", "Volyns ka Oblast", "Zakarpats ka Oblast", "Zaporiz ka Oblast", "Zhytomyrs ka Oblast");
var provincias_228 = new Array('-', "Adjumani", "Arua", "Bugiri", "Busia", "Busoga", "Central", "Eastern", "Iganga", "Kabarole", "Kaberamaido", "Kampala", "Kamwenge", "Kanungu", "Karamoja", "Katakwi", "Kayunga", "Kitgum", "Kyenjojo", "Mayuge", "Mbale", "Moroto", "Mpigi", "Mukono", "Nakapiripirit", "Nakasongola", "Nile", "North Buganda", "Northern", "Pader", "Rukungiri", "Sembabule", "Sironko", "Soroti", "South Buganda", "Southern", "Wakiso", "Western", "Yumbe");
var provincias_229 = new Array('-', "United States Minor Outlying Islands (General)");
var provincias_230 = new Array('-', "Artigas", "Canelones", "Cerro Largo", "Colonia", "Durazno", "Flores", "Florida", "Lavalleja", "Maldonado", "Montevideo", "Paysandu", "Rio Negro", "Rivera", "Rocha", "Salto", "San Jose", "Soriano", "Tacuarembo", "Treinta y Tres");
var provincias_231 = new Array('-', "Andijon", "Bukhoro", "Farghona", "Jizzakh", "Khorazm", "Namangan", "Nawoiy", "Qashqadaryo", "Qoraqalpoghiston", "Samarqand", "Sirdaryo", "Sirdaryo Province", "Surkhondaryo", "Toshkent");
var provincias_232 = new Array('-', "Ambrym", "Aoba", "Efate", "Epi", "Malakula", "Malampa", "Paama", "Penama", "Pentecote", "Sanma", "Shefa", "Shepherd", "Tafea", "Torba");
var provincias_233 = new Array('-', "Amazonas", "Anzoategui", "Apure", "Aragua", "Barinas", "Bolivar", "Carabobo", "Cojedes", "Delta Amacuro", "Dependencias Federales", "Distrito Federal", "Falcon", "Guarico", "Lara", "Merida", "Miranda", "Monagas", "Nueva Esparta", "Portuguesa", "Sucre", "Tachira", "Trujillo", "Vargas", "Yaracuy", "Zulia");
var provincias_234 = new Array('-', "An Giang", "An Giang Province", "Ba Ria-Vung Tau", "Bac Thai", "Ben Tre", "Binh Dinh", "Binh Thuan", "Binh Tri Thien", "Can Tho", "Cao Bang", "Cuu Long", "Dac Lac", "Dac Lak Province", "Dong Nai", "Dong Nai", "Dong Thap", "Gia Lai", "Gia Lai-Kon Tum", "Ha Bac", "Ha Giang", "Ha Nam Ninh", "Ha Noi", "Ha Son Binh", "Ha Tay", "Ha Tinh", "Ha Tuyen", "Hai Hung", "Hai Phong", "Hanoi", "Hau Giang", "Ho Chi Minh", "Hoa Binh", "Hung Yên Province", "Hà Nam Province", "H?i Duong Province", "H? Chí Minh Municipality", "Khanh Hoa", "Kien Giang", "Ki?n Giang Province", "Kon Tum", "Lai Chau", "Lam Dong", "Lang Son", "Lao Cai", "Long An", "Minh Hai", "Minh H?i T?nh", "Nam Ha", "Nghe An", "Nghe Tinh", "Nghia Binh", "Ninh Binh", "Ninh Thuan", "Phu Khanh", "Phu Yen", "Quang Binh", "Quang Nam-Da Nang", "Quang Ngai", "Quang Ninh", "Quang Tri", "Qu?ng Nam Province", "Soc Trang", "Son La", "Song Be", "Tay Ninh", "Thai Binh", "Thanh Hoa", "Thua Thien", "Thái Nguyên Province", "Tien Giang", "Tra Vinh", "Tuyen Quang", "Vinh Long", "Vinh Phu", "Vinh Phú T?nh", "Yen Bai", "Ð?ng Tháp Province");
var provincias_235 = new Array('-', "Virgin Islands, British (General)");
var provincias_236 = new Array('-', "Virgin Islands, U.S. (General)");
var provincias_237 = new Array('-', "Western Sahara (General)");
var provincias_238 = new Array('-', "Abyan", "Adan", "Adan Governorate", "Al Bayda", "Al Hudaydah", "Al Jawf", "Al Mahrah", "Al Mahwit", "Dhamar", "Hadramawt", "Hajjah", "Ibb", "Lahij", "Ma rib", "Sa", "San", "Shabwah", "Ta", "Taizz Governorate");
var provincias_239 = new Array('-', "Bandundu", "Bas-Congo", "Equateur", "Kasai-Occidental", "Kasai-Oriental", "Katanga", "Kinshasa", "Kivu", "Maniema", "Nord-Kivu", "Orientale", "Sud-Kivu");
var provincias_240 = new Array('-', "Central", "Copperbelt", "Eastern", "Luapula", "Lusaka", "North-Western", "Northern", "Southern", "Western");
var provincias_241 = new Array('-', "Bulawayo", "Harare", "Manicaland", "Mashonaland Central", "Mashonaland East", "Mashonaland West", "Masvingo", "Matabeleland North", "Matabeleland South", "Midlands");

function cambia_provincia(){
var str = document.f1.pais[document.f1.pais.selectedIndex].value;

var str2 = str.split("/",2); 
var pais = str2[1]
    //miro a ver si el pais está definido
    if (pais != 0) {
       //si estaba definido, entonces coloco las opciones de la provincia correspondiente.
       //selecciono el array de provincia adecuado
       mis_provincias=eval("provincias_" + pais)
       //calculo el numero de provincias
       num_provincias = mis_provincias.length
       //marco el número de provincias en el select
       document.f1.provincia.length = num_provincias
       //para cada provincia del array, la introduzco en el select
       for(i=0;i<num_provincias;i++){
          document.f1.provincia.options[i].value=mis_provincias[i]
          document.f1.provincia.options[i].text=mis_provincias[i]
       }
    }else{
       //si no había provincia seleccionada, elimino las provincias del select
       document.f1.provincia.length = 1
       //coloco un guión en la única opción que he dejado
       document.f1.provincia.options[0].value = "-"
       document.f1.provincia.options[0].text = "-"
    }
    //marco como seleccionada la opción primera de provincia
    document.f1.provincia.options[0].selected = true

}



var simpleCart = new Cart();

window.onload = simpleCart.initialize;
