Monday, December 1, 2008

Nokia ringtones - Christmas

Christmas - Oh Come All Ye Faithful

Nokia Composer Code -
4g1, 2g1, 4d1, 4g1, 2a1, 2d1, 4b1, 4a1, 4b1, 4c2, 2b1, 4a1, 4g1, 2g1, 4#f1, 4e1, 4#f1, 4g1, 4a1, 4b1, 2#f1, 4.e1, 8d1, 2.d1

Nokia Keypress Sequence -
5, 59, 28, 5, 69, 2, 78, 6, 7, 1*, 79**, 68, 5, 59, 48#, 3, 4#, 5, 6, 7, 49#, (Hold (Hold 3))8, 28, (Hold 2)99

Christmas - Feliz Navidad

Nokia Composer Code -
4a1, 4d2, 4#c2, 4d2, 2.b1, 4-, 4b1, 4e2, 4d2, 4b1, 2.a1, 4-, 4a1, 4d2, 4#c2, 4d2, 4.b1, 4g1, 4b1, 4b1, 4a1, 4a1, 4b1, 4a1, 4g1, 4g1, 1#f1

Nokia Keypress Sequence -
68, 29*, 18#, 2, (Hold 7)99**, 08, 788, 39*, 28, 7**, (Hold 6)99, 08, 688, 29*, 18#, 2, (Hold 7)9**, 58, 79, 7, 68, 6, 7, 6, 59, 58, 4999#

Christmas - Rudolph The Red Nose Reindeer

Nokia Composer Code -
32-, 4#g1, 8#a1, 4#g1, 8f1, 8#c1, 8#a1, 4.#g1, 4#g1, 4#a1, 4#g1, 4#a1, 8#g1, 8#c1, 2c1, 4#f1, 8#g1, 4#f1, 8#d1, 8c1, 8#a1, 4.#g1, 4#g1, 4#a1, 4#g1, 4#a1, 8#g1, 8#a1, 2f1, 4#g1, 8#a1, 4#a1, 8f1, 8#c1, 8#a1, 4.#g1, 4#g1, 4#a1, 4#g1, 4#a1, 8#g1, 8#c1, 2c1, 4#f1, 8#g1, 4#f1, 8#d1, 8c1, 8#a1, 4.#g1, 4#g1, 4#a1, 4#g1, 4#a1, 8#g1, 8#d1, 2#c1

Nokia Keypress Sequence -
0888, 588#, 69#, 58#, 49, 1*#, 6**#, (Hold 5)9#, 588#, 6#, 5#, 6#, 59#, 1*#, 199, 4888**#, 59#, 48#, 29#, 1*, 6**#, (Hold 5)9#, 588#, 6#, 5#, 6#, 59#, 6#, 499, 5888#, 69#, 68#, 49, 1*#, 6**#, (Hold 5)9#, 588#, 6#, 5#, 6#, 59#, 1*#, 199, 4888**#, 59#, 48#, 29#, 1*, 6**#, (Hold 5)9#, 588#, 6#, 5#, 6#, 59#, 2*#, 199#

Christmas - Amazing Grace

Nokia Composer Code -
4c1, 4f1, 2f1, 4a1, 4g1, 4f1, 2a1, 4a1, 4g1, 2f1, 4d1, 2c1, 4c1, 4f1, 2f1, 4a1, 4g1, 4f1, 2a1, 4g1, 4a1, 2.c2

Nokia Keypress Sequence -
18, 4, 499, 688, 5, 4, 699, 688, 5, 499, 28, 19, 188, 4, 499, 688, 5, 4, 699, 588, 6, (Hold 1)99*

Christmas Carols - Joy To The World

Nokia Composer Code -
4d2, 4.#c2, 16b1, 4.a1, 4g1, 4#f1, 4e1, 4d1, 4-, 4a1, 4b1, 4-, 4b1, 4#c2, 4-, 4#c2, 2.d2, 4-, 4d2, 4d2, 4#c2, 4b1, 4a1, 4.a1, 16g1, 4#f1, 4d2, 4d2, 4#c2, 4b1, 4a1, 4.a1, 16g1, 4#f1, 4#f1, 4#f1, 4#f1, 4#f1, 16#f1, 16g1, 4.a1, 16g1, 16#f1, 4e1, 4e1, 4e1, 16e1, 16#f1, 4g1, 4-, 16#f1, 16e1, 4d1, 4d2, 4-, 4b1, 4.a1, 16g1, 4#f1, 4g1, 4#f1, 4e1, 2d1

Nokia Keypress Sequence -
2*, (Hold 1)8#, 78**, (Hold 6)99, 58, 49#, 3, 2, 08, 68, 79, 08, 78, 19*#, 08, 18#, (Hold 2)99, 088, 288, 2, 1#, 7**, 6, (Hold (Hold 6)), 58, 49#, 2*, 2, 1#, 7**, 6, (Hold (Hold 6)), 58, 49#, 4#, 4#, 4#, 4#, 48#, 5, (Hold 6)99, 588, 4#, 39, 3, 3, 38, 4#, 599, 08, 488#, 3, 29, 2*, 0, 7**, (Hold (Hold 6)), 58, 49#, 5, 49#, 3, 29

Christmas Carols - Let It Snow

Nokia Composer Code -
8c1, 8c1, 8c2, 8c2, 4#a1, 4a1, 4g1, 4f1, 2c1, 8c1, 16c1, 4.g1, 8f1, 4.g1, 8f1, 4e1, 2c1, 4d1, 8d2, 8d2, 4c2, 4#a1, 4a1, 2.g1, 8.e2, 16d2, 4c2, 8.c2, 16#a1, 4a1, 8.#a1, 16a1, 2.f1, 4c1, 8c2, 8c2, 4#a1, 4a1, 4g1, 4f1, 2c1, 8.c1, 16c1, 4.g1, 8f1, 4.g1, 8f1, 4e1, 2c1, 4d1, 8d2, 8d2, 4c2, 4#a1, 4a1, 2.g1, 8.e2, 16d2, 4c2, 8.c2, 16#a1, 4a1, 8.a1, 16g1, 2.f1

Nokia Keypress Sequence -
18, 1, 1*, 1, 69**#, 6, 5, 4, 19, 188, 18, (Hold (Hold 5))99, 48, (Hold (Hold 5))9, 48, 39, 19, 28, 28*, 2, 19, 6**#, 6, (Hold 5)9, (Hold 3)88*, 28, 199, (Hold 1)8, 68**#, 699, (Hold 6)8#, 68, (Hold 4)999, 18, 18*, 1, 69**#, 6, 5, 4, 19, (Hold 1)88, 18, (Hold (Hold 5))99, 48, (Hold (Hold 5))9, 48, 39, 19, 28, 28*, 2, 19, 6**#, 6, (Hold 5)9, (Hold 3)88*, 28, 199, (Hold 1)8, 68**#, 699, (Hold 6)8, 58, (Hold 4)999

Christmas Carols - Jingle Bell Rock

Nokia Composer Code -
4g1, 4e1, 4d1, 4c1, 2g1, 4g1, 4e1, 4d1, 4c1, 2a1, 4a1, 4f1, 4e1, 4d1, 4b1, 4g1, 4b1, 4d1, 4.g1, 16g1, 4f1, 4d1, 2e1, 4g1, 4e1, 4d1, 4c1, 2g1, 16#f1, 4g1, 4e1, 4d1, 4c1, 2a1, 4a1, 4f1, 4e1, 4d1, 4g1, 16g1, 16#f1, 16g1, 16#f1, 16g1, 16#g1, 4.a1, 16g1, 4e1, 4d1, 4c1, 4g1, 4e1, 4e1, 4.e1, 16#d1, 4e1, 4e1, 4.e1, 16#d1, 4e1, 4g1, 4.c1, 16d1, 2e1, 4f1, 4f1, 4.f1, 16f1, 4f1, 4e1, 4e1, 16e1, 16e1, 4e1, 4d1, 4d1, 4e1, 2d1

Nokia Keypress Sequence -
58, 3*, 2, 1, 599**, 588, 3*, 2, 1, 699**, 688, 4*, 3, 2, 7**, 5, 7, 2*, (Hold (Hold 5)), 58, 49, 2, 399, 588**, 3*, 2, 1, 599**, 4888#, 59, 3*, 2, 1, 699**, 688, 4*, 3, 2, 5, 58, 4#, 5, 4#, 5, 5#, (Hold (Hold 6))9, 58, 39, 2, 19, 5, 38, 3, (Hold (Hold 3)), 28#, 39, 3, (Hold (Hold 3)), 28#, 39, 5, (Hold (Hold 1)), 28, 3999, 488, 4, (Hold (Hold 4)), 48, 49, 3, 3, 38, 3, 39, 2, 2, 3, 299

Wednesday, November 26, 2008

Opeth concert - India 2009

Swedish progressive heavy metal band, Opeth will be performing in Chennai on 25th January 2009 at IIT Madras for its Saarang festival.

for updates check their website.


Monday, November 17, 2008

Altec Lansing VS3251 5.1 surround sound system with 'Creative SoundBlaster Live' soundcard.

Altec Lansing VS3251 5.1 surround sound system is a good deal for its price. There are a few things to take care of when using this sound system with a 'Creative SoundBlaster Live' soundcard.The Altec Lansing VS3251 has two sources of inputs one for 5.1 cables at the back and another AUX-IN in the front near the volume knob.

Modes
There are two modes 'Stereo/Surround' on the remote labelled 'ster/surr'.In stereo mode the front left, front right and subwoofer work alone.if you press the 'ster/surr' button again then your in 5.1 surround sound and all the 6 speakers should work.

Input Sources
(a)If you connect a 3.5mm cable from any audio source to the AUX-IN input then all the 5 satellite speakers AND the subwoofer work properly.

(b)Now if you connect the three cables provided (green, black and yellow) from your 'Creative SoundBlaster Live' soundcard to the back of the 5.1 surround sound system as per the Altec Lansing VS3251 manual then you are supposed to get sound from the respective speakers as detailed in 'Modes' above. i.e in stereo mode 3 speakers (front left, front right and subwoofer work) and in surround sound mode all 6 speakers

With Creative SoundBlaster Live soundcard, there are some changes that need to be made using the 'Creative surround sound mixer' software for the surround sound to work on all 6 speakers.Make sure that you are in 5.1 surround sound mode and that each satellite speaker is working. you will not get any bass from the subwoofer at this stage. then open 'Creative surround sound mixer' under 'advanced' there is a 'bass redirection' checkbox, check it and the 'cross over' volume level will be enabled increase it to a desired level above 35% and you will start to hear bass coming from the subwoofer IN 5.1 surround mode.

However even making this change, i still cannot hear anything coming from the center speaker even though i am using Dolby Digial 5.1 enabled DVDs. Suggestions/comments are welcome.

Tuesday, November 11, 2008

Iron Maiden scheduled to perfom on 15th Feb 2009 in Bangalore,India

For those who missed the earlier concerts here's some news from http://www.ironmaiden.com/

QUOTE

IRON MAIDEN FLY HIGH AGAIN
FOR THE FINAL LEG OF THEIR
‘SOMEWHERE BACK IN TIME WORLD TOUR

February 2009
Fri 13th - UAE -Dubai Media City Amphitheatre
Sun 15th - India - Bangalore Royal Challenge Rock In India Fri 20th - New Zealand - Auckland. Mount Smart StadiumSat 21st - New Zealand - Christchurch. AMI StadiumWed 25th - Mexico - Monterrey Estadio Technologico.Thurs 26th - Mexico - Guadalajara Arena VFG Jalisco.Sat 28th - Mexico - Mexico City Fero Sol Stadium Complex
March 2009
South and Central America - details coming soon.
UNQUOTE

Sunday, November 9, 2008

Tuesday, October 14, 2008

SAHG Norwegian heavy rock band to tour India in Oct & Nov 2008

"SAHG" Norwegian heavy rock band will be touring India in October and November 2008.

"SAHG will tour India between October 25 and November 9 of this year. The tour includes appearances at the Great Indian Rock Festival in four cities plus three other shows across the country. This will be the very first appearances in Asia for SAHG, who meets the Indian audience with great anticipation. It will be a journey of discovery for the band, and hopefully many new people will also discover SAHG. It will be a quest of inspiration for our new album, which we with no doubt will find in the fascinating world of Indian music and culture.

Oct 25, 2008 - India, Kanpur, Indian Institute of Technology
Oct 30, 2008 - India, New Dehli, TBA
Oct 31, 2008 - India, Mumbai, Great Indian Rock
Nov 2, 2008 - India, New Dehli, Great Indian Rock
Nov 5, 2008 - India, Kolkata, Great Indian Rock
Nov 7, 2008 - India, Shillong, TBA
Nov 9, 2008 - India, Bangalore, Great Indian Rock/Palace Grounds

"
Read the full news article.


check their website for updated tour info.

Monday, October 13, 2008

Def Leppard October 2008 show in India is cancelled


The two shows that "Def Leppard" were to perform in India on October 17th & 19th have been cancelled.

more info at their official website.

a news article from "Times of India" newspaper Bangalore edition

Tuesday, September 23, 2008

White Lion to perform in India in December 2008

According to White Lion's website and a couple of news reports "White Lion" will be performing in India in December 2008.




These tour details are mentioned on blabbermouth.net as well

" Fresh off their European and South American tours in support of the band's latest album, "Return Of The Pride", reactivated hard rockers WHITE LION have scheduled the following dates:

Oct. 10 - West Hollywood, CA - House Of Blues (w/ LITTLE CAESAR)
Oct. 14 - San Diego, CA - House Of Blues (w/ PRETTY BOY FLOYD)
Oct. 15 - Calgary, AB - Snatch Rockbar
Oct. 21 - Seattle, WA - Studio Seven
Nov. 08 - W. Springfield, VA - Jaxx
Nov. 27 - Cermanate (Como), Italy - The Blackhorse
Nov. 28 - Bologna, Italy - Sottotetto
Nov. 29 - Rome, Italy - Jailbreak
Dec. 13 - JN Stadium - Shillong (Meghalaya), India
Dec. 16 - Dimapur, Stadium - Nagaland, India
May 08 - Halifax, NS - Cabin Fever Rockfest

More dates for the USA and Europe for November and December will be announced soon."

Sunday, August 31, 2008

St. Patrick's Church, Bangalore - Mass/Service timings

15-K, Brigade Road
Bangalore 560025
Phone: 5599863

Sunday Services

7.15am Mass Tamil
8.30am Mass English
9.45am Mass English
6pm Mass English

Weekday Services

5.45am Mass (Daily) English
6.15am Mass (Daily) Tamil
7am Mass (Daily) English
5.30pm Mass (Monday, Wednesday, Thursday, Friday, Saturday) English
5.45pm Mass (Tuesday) Tamil
6pm Mass (Saturday) English

Wednesday, August 20, 2008

software/firmware drivers and updates for many devices

This site http://www.driversguide.com/ has an extensive database for many device drivers and firmware used in software be it laptops, notebooks, desktop computers, LAN cards etc.Most of the leading companies models are listed on this site. It categorizes products by

  • BIOS / Motherboard
  • CD / DVD
  • Digital Camera Displays
  • Game Controller
  • Graphics / Video Adapter
  • Hard Disk Controller
  • Input Devices (mouse, etc.)
  • Modem / ISDN
  • Network Devices
  • Notebook
  • Other Devices
  • Printer / Plotter / Multi-Office
  • Removable drive
  • Scanner
  • Sound Card
  • Tape Backup
  • USB
Registration is FREE and once registered you need to just login and download the required driver software/firmware.

Wednesday, July 30, 2008

Detailed Goa map

Detailed map of Goa for tourism

The above picture is a detailed map of Goa. Its shows the taluka's, major beaches and other places of interest. useful for tourists and other people visiting the state.

Monday, July 28, 2008

Adding options to optgroup tag dynamically/programmatically

Inorder to add options to an optgroup tag dynamically, we need to
1) assign an id to the optgroup say id="firstgrpid"
2) add an attribute to each of the option tags say "parentid" having a value same as the optgroup id (as mentioned in step 1)
thats all that needs to be done....!!!

when moving elements from left-to-right what needs to be done for each option tag that has been selected from the source list(left hand side list) is
1) create an option tag as shown below with the selected option tags text and value

var optnew = new Option(currentNode.text, currentNode.value, false);

2)use the setAttribute() to set the "parentid" attribute for the new option tag.
3) add the new option to the destination list tag.

destArray.options[len] = optnew ;


When moving option tags from right-to-left we need to do the above 3 steps and
4) get the value of the "parentid" attribute which contains the parent to which we need to attach the new option tag
5) add the new option tag based on the value of "parentid" attribute.

//get the parent id and add the element to it
tempEle = document.getElementById(tempEleId);
tempEle.appendChild(optnew);
// the below lines of codes are needed for IE otherwise the elements is not displayed in the browser.
optnew.value = currentNode.value;
optnew.text = currentNode.text;


when moving elements up or down, we need to
1) get an index of the current selected option
2) if moving up then increase that index (step 1) by 1 or if moving down then decrease that index (step 1) by 1
3)create 2 new option tags and set the "parentid" attribute.
4) interchange the 2 option tags.

//used to interchange the element positions when moving up and down
function swapOptions(obj,i,j)
{

var i_selected ;
var j_selected ;



i_selected = obj[i].selected;
j_selected = obj[j].selected;

//1st element to swap
var temp = new Option(obj[i].text, obj[i].value, obj[i].defaultSelected, obj[i].selected);
var currentNode = obj.options[i];
for(var l = 0; l < currentNode.attributes.length; l++)
{
if(currentNode.attributes[l].nodeName == "parentid")
{
temp.setAttribute(currentNode.attributes[l].nodeName,currentNode.attributes[l].nodeValue);
}
}

var temp2= new Option(obj[j].text, obj[j].value, obj[j].defaultSelected, obj[j].selected);
var currentNode = obj.options[j];
for(var l = 0; l < currentNode.attributes.length; l++)
{
if(currentNode.attributes[l].nodeName == "parentid" )
{
temp2.setAttribute(currentNode.attributes[l].nodeName,currentNode.attributes[l].nodeValue); }
}

obj[i] = temp2;
obj[j] = temp;
obj[i].selected = j_selected;
obj[j].selected = i_selected;

}





full source code

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title></title>
<script type="text/javascript">

//add elements from source to destination and vice-versa
function moveleftright(isAdd)
{
if (isAdd)
{
//source to destination (left to right)
destArray = document.getElementById('destArray');
sourceArray = document.getElementById('sourceArray');
}
else
{
//destination to source (right to left)
sourceArray = document.getElementById('destArray');
destArray = document.getElementById('sourceArray');
}

var myArray=new Array();
var tempCount=0;
var len = destArray.length;
var orgLen = sourceArray.length;

// get a list of all selected elements
for(var i = 0; i < orgLen; i++)
{
if ((sourceArray.options[i] != null) && (sourceArray.options[i].selected))
{
var currentNode = sourceArray.options[i];
var optnew = new Option(currentNode.text, currentNode.value, false);
var tempEleId = "";

for(var j = 0; j < currentNode.attributes.length; j++)
{
if(currentNode.attributes[j].nodeName == "parentid" )
{
optnew.setAttribute(currentNode.attributes[j].nodeName,currentNode.attributes[j].nodeValue);
//store the parent's id in 'tempEleId' so that while removing elements they will be added back to parent.
if(!isAdd && currentNode.attributes[j].nodeName == "parentid")
{
tempEleId = currentNode.attributes[j].nodeValue;
}
}
}
if (isAdd)
{
//add elements at the end
destArray.options[len] = optnew ;
}
else
{
if(tempEleId && tempEleId.length > 0)
{

//get the parent id and add the element to it
tempEle = document.getElementById(tempEleId);
tempEle.appendChild(optnew);
// the below lines of codes are needed for IE otherwise the elements is not displayed in the browser.
optnew.value = currentNode.value;
optnew.text = currentNode.text;

}
}

myArray[tempCount] = currentNode.text;
tempCount++;
len++;
}
}

//Remove the values in from the source list
for (var j=0; j<myArray.length; j++)
{
for (var n=0; n<sourceArray.length; n++)
{

if (myArray[j] == sourceArray.options[n].text && sourceArray.options[n].selected)
{

sourceArray.options[n] = null;

}
}
}


}

//used to interchange the element positions when moving up and down
function swapOptions(obj,i,j)
{

var i_selected ;
var j_selected ;



i_selected = obj[i].selected;
j_selected = obj[j].selected;

//1st element to swap
var temp = new Option(obj[i].text, obj[i].value, obj[i].defaultSelected, obj[i].selected);
var currentNode = obj.options[i];
for(var l = 0; l < currentNode.attributes.length; l++)
{
if(currentNode.attributes[l].nodeName == "parentid")
{
temp.setAttribute(currentNode.attributes[l].nodeName,currentNode.attributes[l].nodeValue);
}
}

var temp2= new Option(obj[j].text, obj[j].value, obj[j].defaultSelected, obj[j].selected);
var currentNode = obj.options[j];
for(var l = 0; l < currentNode.attributes.length; l++)
{
if(currentNode.attributes[l].nodeName == "parentid" )
{
temp2.setAttribute(currentNode.attributes[l].nodeName,currentNode.attributes[l].nodeValue); }
}

obj[i] = temp2;
obj[j] = temp;
obj[i].selected = j_selected;
obj[j].selected = i_selected;

}






/* Move selected option in a select list up one*/
function moveOptionUp(argThis)
{
destArray = document.getElementById('destArray');

for (i=0; i<destArray.options.length; i++)
{
if (destArray.options[i].selected)
{
if (i != 0 && !destArray.options[i-1].selected)
{
swapOptions(destArray,i,i-1);
}
}
}
}

/* Move selected option in a select list down one*/
function moveOptionDown(argThis)
{
destArray = document.getElementById('destArray');

for (i=destArray.options.length-1; i>=0; i--)
{
if (destArray.options[i].selected)
{
if (i != (destArray.options.length-1) && ! destArray.options[i+1].selected)
{
swapOptions(destArray,i,i+1);
}
}
}
}

</script>

</head>
<body>
<form id="createBatchTemplate" name="createBatchTemplate" action="#" method="post">


<div style="padding-bottom:10px;">
<table cellspacing="0">
<colgroup>
<col style="width: 30%" />
<col style="width: 10%" />
<col style="width: 30%" />
<col style="width: 10%" />
</colgroup>
<tbody>
<tr align="left">
<th style="text-align:left; font-siz:60%;margin-bottom:3px"><label>
left columns
</label></th>
<td></td>
<th style="text-align:left; font-siz:60%;margin-bottom:3px"><label>
right columns
</label></th>
<td></td>
</tr>
<tr>

<td><select id="sourceArray" name="sourceArray"
multiple size=10>
<optgroup label='1st group' id="firstgrpid">
<option parentid="firstgrpid" value='grp1element1'/>grp1 element1</option>
<option parentid="firstgrpid" value='grp1element2'/>grp1 element2</option>
<option parentid="firstgrpid" value='grp1element3'/>grp1 element3</option>
<br />
</optgroup>
<optgroup/>

<optgroup label='2nd group' id="secondgrpid">
<option parentid="secondgrpid" value='grp2element1'/>grp2 element1</option>
<option parentid="secondgrpid" value='grp2element2'/>grp2 element2</option>
<br />
</optgroup>
</select></td>
<td align="center" valign="middle"><br />
<br />
<br />


<input type="button" id="addToDest"
onclick="javascript:moveleftright(true);"
value='move right'/>
<br />
<br />
<input type="button"
id="addToSrc"
onclick="javascript:moveleftright(false);"
value='move left'/>

</td>

<td><select id="destArray" name="destArray"
multiple size=10 >
</select></td>
<td align="center" valign="middle"><br />
<br />
<br />
<input type="button"
id="MoveUp"
onclick="javascript:moveOptionUp(this)"
value='move up' />
<br />
<br />
<input type="button" id="MoveDown" onclick="javascript:moveOptionDown(this);"
value='move down' /></div>
</td>
</tr>
</tbody>
</table>

</div>
</td>

</tr>

</table>

</form>

</body>
</html>

Thursday, July 24, 2008

Metallica set list for their tour in 2008

location: Wiltern Theatre, Los Angeles, CA held on 14 May 2008

  • Creeping Death
  • Fuel
  • For Whom The Bell Tolls
  • Welcome Home (Sanitarium)
  • …And Justice For All
  • Sad But True
  • Disposable Heroes
  • One
  • Master Of Puppets
  • Battery
- - - - -
  • Last Caress
  • No Remorse
  • Enter Sandman
- - - - -
  • Fight Fire With Fire (w/ Flea)
  • Seek and Destroy

Pearl Jam - set list for their tour in 2008

location: Mansfield, Massachusetts held on 30th june 2008

  • Wash
  • Last Exit
  • Save You
  • Severed Hand
  • Animal
  • MFC
  • Elderly Woman Behind The Counter In A Small Town
  • 1/2 Full
  • Corduroy
  • Given To Fly
  • Even Flow
  • Education
  • Satan's Bed
  • Whipping
  • Glorified G
  • Do The Evolution

Encore 1
--------
  • Bee Girl
  • Who You Are
  • Better Man(Save it for Later)
  • Garden
  • Why Go

Encore 2
--------
  • No More
  • Once
  • Footsteps
  • Alive
  • Rockin' In The Free World

Coldplay - set list for their summer tour 2008

location: Forum in Los Angeles - 14th July 2008

  • Life in Technicolor
  • Violet Hill
  • Clocks
  • In My Place
  • Viva La Vida
  • 42
  • Yes
  • The Scientist
  • Chinese Sleep Chant
  • God Put a Smile Upon Your Face
  • Square One
  • Speed of Sound
  • Trouble
  • Lost!
  • Strawberry Swing
  • Yellow
  • Death Will Never Conquer
  • Fix You
  • Lovers In Japan
  • Death and All His Friends / The Escapist

R.E.M. Set List for their tour in 2008

Location: Dresden, Germany held on 15 July 2008

  • These Days
  • Horse To Water
  • Second Guessing
  • What's the Frequency, Kenneth?
  • Disturbance At The Heron House
  • Man-Sized Wreath
  • Ignoreland
  • 7 Chinese Bros.
  • The Great Beyond
  • 10.Accelerate
  • Walk Unafraid
  • Houston
  • Electrolite
  • Imitation Of Life
  • Little America
  • The One I Love
  • I’ve Been High
  • Let Me In
  • Living Well Is the Best Revenge
  • Bad Day
  • I'm Gonna DJ
  • Orange Crush

Encore:
-------
  • Supernatural Superserious
  • Losing My Religion
  • Hollow Man
  • Country Feedback
  • Man On The Moon

Monday, July 14, 2008

Def Leppard to perform in india in october 2008

According to Def Leppard's official website,http://www.defleppard.com/tour/ , they will be coming back to perform in india in October 2008.

FRI 10.17 Bangalore India Palace Grounds CHECK LOCAL PRESS

SUN 10.19 Mumbai India MMRDA Grounds CHECK LOCAL PRESS



The earlier show was probably postponed coz of the Elections that were being held in Bangalore in May 2007.

so rockers save some cash for the tickets or try for free passes :O)

Tuesday, June 10, 2008

Posting HTML Form and iframe's form data together

Posting HTML Form and iframe's form data together

HTML Form and iframe's form data can be posted simultaneously using the same submit. Whats needed to be done is that first we post/submit the iframe's form data and then post/submit the HTML form's data.

main HTML code

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script type="text/javascript">
function selectSubmit(argThis)
{
// submit the iframe and then the form
iframepage.myiframeform.submit();
document.mainFormPage.submit();
}
</script>
</head>
<body>
<form name="mainFormPage" action="#" method="post">
<iframe id="iframepage" name="iframepage" src="iframehtml.html" width="100%" height="270px" frameborder="0" scrolling="no">
</iframe>
<label>lastname: </label>
<input type="text' id="id2" value="some lastname"/>
<label>city: </label>
<input type="text' id="id3" value="some city"/>
<input type="submit" id="savebtn" onclick="javascript:selectSubmit(this)"
value='save button' />
</form>
</body>
</html>


IFRAME HTML code

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
</head>
<body>
<form id="myiframeform" name="myiframeform" action="#" method="post">
<label>name : </label>
<input type="text' id="id1" value="some name"/>
</form>
</body>
</html>

Judas Priest - set list - world tour 2008

Judas Priest set list for their current world tour 2008.

  • Intro: Dawn of Creation
  • Prophecy
  • Metal Gods
  • Eat Me Alive
  • Between the Hammer and the Anvil
  • Devil's Child
  • Breaking the Law
  • Hell Patrol
  • Death
  • Dissident Aggressor
  • Angel
  • The Hellion / Electric Eye
  • Rock Hard, Ride Free
  • Sinner
  • Painkiller
  • Hell Bent for Leather
  • The Green Manalishi (With the Two-Pronged Crown)
  • You've Got Another Thing Coming

Monday, April 28, 2008

Legal issues/queries on property in Goa

The link below gives considerable information on legal issues related to buying/selling of property in Goa.

There are lawyers who answer the queries posted by people so there is some authenticity in the answers.

http://www.homesgoa.com/WebPages/QA/Legal_Queries.htm

List of heavy metal concerts around the world

Click on the below link for a list of metal concerts around the world.

http://www.azheavymetal.com/php/festivales.php

Die hard metal heads need to complete this list in their lifetime..... \m/

Sunday, April 27, 2008

Def leppard - Indian shows in 2008 postponed

According to Def leppard's official website, http://www.defleppard.com/news/, all shows for their current 2008 tour have been postponed.

"We are sorry to report that due to unforseen circumstances of the Indian government suddenly calling May elections (and making certain venues now unavailable for any music or sporting events), the two Indian shows that were supposed to take place in Bangalore and Mumbai on May 16 and 18, have been postponed. At this moment, the band is working on rescheduling these shows for dates in the fall. Our apologies to all our fans in India!"

Monday, April 14, 2008

Nokia ringtones - Rock genre

Iron Maiden - Clairvoyant
Nokia Composer Code
8.a1, 8.g1, 8.a1, 8.b1, 8.a1, 8g1, 8.a1, 2.d1, 8.a1, 8.g1, 8.a1, 8.b1, 8.a1, 8g1, 8.a1, 4.d2, 16g1, 16g1, 16g1, 16g1, 16#f1, 16d1, 8g1, 2g1, 16g1, 16g1, 16g1, 16g1, 16#f1, 16d1, 8g1, 2g1, 16g1, 16g1, 16g1, 16g1, 16#f1, 16d1, 8g1, 16#f1, 4.d1, 16g1, 16g1, 16g1, 16g1, 16#f1, 16d1, 8g1, 16#f1, 2d1
Nokia Keypress Sequence
(Hold 6)8, (Hold 5), (Hold 6), (Hold 7), (Hold 6), 5, (Hold 6), (Hold 2)99, (Hold 6)88, (Hold 5), (Hold 6), (Hold 7), (Hold 6), 5, (Hold 6), (Hold 2)9*, 588**, 5, 5, 5, 4#, 2, 59, 599, 5888, 5, 5, 5, 4#, 2, 59, 599, 5888, 5, 5, 5, 4#, 2, 59, 48#, (Hold (Hold 2))99, 588, 5, 5, 5, 4#, 2, 59, 48#, 2999
Metallica - Master Of Puppets
Nokia Composer Code
16e1, 16f1, 16b1, 16e1, 16f1, 16c2, 16e1, 16f1, 16#c2, 16e1, 16f1, 16c2, 16e1, 16f1, 16b1, 16b1, 16e1, 16f1, 16b1, 16e1, 16f1, 16c2, 16f1, 16e1, 16d2, 16#c2, 16e1, 16d2, 16#c2, 16e1, 16d2, 16#c2, 16d2, 16#c2, 16e1, 16d2, 16#c2, 16e1, 16d2, 16#c2, 8e1
Nokia Keypress Sequence
388, 4, 7, 3, 4, 1*, 3**, 4, 1*#, 3**, 4, 1*, 3**, 4, 7, 7, 3, 4, 7, 3, 4, 1*, 4**, 3, 2*, 1#, 3**, 2*, 1#, 3**, 2*, 1#, 2, 1#, 3**, 2*, 1#, 3**, 2*, 1#, 39**
Metallica - Nothing Else Matters
Nokia Composer Code
4e1, 4g2, 4b2, 4e3, 4b2, 4g2, 4e1, 4g2, 4b2, 4e3, 4b2, 4g2, 2e1, 4b2, 2b2, 2b2, 32-, 4b2, 4c2, 4b2, 4a2, 4b2, 4a2, 4e2, 2e2, 2e2, 16-, 4c2, 4e2, 4e2, 4#f2, 4e2, 4e2, 16-, 4e2, 4#f2, 2g2, 4g2, 4g2, 2a2, 4a2, 4a2, 2e2, 2g2, 2b2, 2e3, 2b2, 2g2, 2e2
Nokia Keypress Sequence
3, 5*, 7, 3*, 7**, 5, 3**, 5*, 7, 3*, 7**, 5, 39**, 78*, 79, 7, 099, 78, 1, 7, 6, 7, 6, 3, 39, 3, 0888, 18, 3, 3, 4#, 3, 3, 088, 3, 4#, 59, 58, 5, 69, 68, 6, 39, 5, 7, 3*, 7**, 5, 3
Nirvana - In Bloom
Nokia Composer Code
8.#a1, 4#a1, 8#a1, 8.g1, 4g1, 8g1, 4g1, 4g1, 4g1, 4f1, 8.f1, 4f1, 8f1, 2#g1, 8-, 4#a1, 4#a1, 4#a1, 4#a1, 8.#a1, 4#a1, 4#f1, 4#f1, 4#f1, 4#f1, 8.#f1, 4#f1, 4#d2, 4#d2, 4#d2, 4#d2, 8.#d2, 4#d2, 4b1, 4b1, 4b1, 4b1, 4a1, 4a1, 4a1, 4a1, 4#a1, 4#a1, 4#a1, 4#a1, 2.#a1
Nokia Keypress Sequence
(Hold 6)8#, 68#, 69#, (Hold 5), 58, 59, 58, 5, 5, 4, (Hold 4)9, 48, 49, 599#, 088, 6888#, 6#, 6#, 6#, (Hold 6)9#, 68#, 4#, 4#, 4#, 4#, (Hold 4)9#, 48#, 2*#, 2#, 2#, 2#, (Hold 2)9#, 28#, 7**, 7, 7, 7, 6, 6, 6, 6, 6#, 6#, 6#, 6#, (Hold 6)999#
Foo Fighters - Monkey Wrench
Nokia Composer Code
32g1, 32g1, 32f1, 32f1, 32e1, 32e1, 32d1, 32d1, 32f1, 32f1, 32e1, 32e1, 32d1, 32d1, 32c1, 32c1, 32d1, 32d1, 32c1, 32c1, 32a1, 32a1, 32c1, 32c1, 32d1, 32d1, 32c1, 32c1, 32d1, 32d1, 32e1, 32d1, 32g1, 32g1, 32f1, 32f1, 32e1, 32e1, 32d1, 32d1, 32f1, 32f1, 32e1, 32e1, 32d1, 32d1, 32c1, 32c1, 32d1, 32d1, 32c1, 32c1, 32a1, 32a1, 32c1, 32c1, 32d1, 32d1, 32c1, 32c1, 32d1, 32d1, 32e1, 32d1
Nokia Keypress Sequence
5888*, 5, 4, 4, 3, 3, 2, 2, 4, 4, 3, 3, 2, 2, 1, 1, 2, 2, 1, 1, 6**, 6, 1*, 1, 2, 2, 1, 1, 2, 2, 3, 2, 5, 5, 4, 4, 3, 3, 2, 2, 4, 4, 3, 3, 2, 2, 1, 1, 2, 2, 1, 1, 6**, 6, 1*, 1, 2, 2, 1, 1, 2, 2, 3, 2
Deep Purple – Burn
Nokia Composer Code
16a1, 16c2, 16b1, 16a1, 8.d2, 16a1, 16c2, 16b1, 16a1, 8d2, 8c2, 16a1, 16a1, 16c2, 16b1, 16a1, 8.d2, 16a1, 16c2, 16b1, 8a1, 4-, 16a1, 16c2, 16b1, 16a1, 8.d2, 16a1, 16c2, 16b1, 16a1, 8d2, 8c2, 16a1, 16a1, 16c2, 16b1, 16a1, 8.d2, 16a1, 16c2, 16b1, 8a1
Nokia Keypress Sequence
688, 1*, 7**, 6, (Hold 2)9*, 68**, 1*, 7**, 6, 29*, 1, 68**, 6, 1*, 7**, 6, (Hold 2)9*, 68**, 1*, 7**, 69, 09, 68, 1*, 7**, 6, (Hold 2)9*, 68**, 1*, 7**, 6, 29*, 1, 68**, 6, 1*, 7**, 6, (Hold 2)9*, 68**, 1*, 7**, 69
Rage Against The Machine - Guerilla Radio
Nokia Composer Code
8e1, 8#f1, 8#f1, 16e1, 8#f1, 16e1, 8#f1, 8a1, 8b1, 8e1, 8#f1, 8#f1, 16e1, 8#f1, 16e1, 8#f1, 8a1, 8b1, 8e1, 8#f1, 8#f1, 16e1, 8#f1, 16e1, 8#f1, 8a1, 8b1, 8e1, 8#f1, 8#f1, 16e1, 8#f1, 16e1, 8#f1, 8a1, 8b1, 8e1, 8#f1, 8#f1, 16e1, 8#f1, 16e1, 8#f1, 8a1, 8b1, 8a1, 4#f1, 8e1, 8#g1, 4#f1, 8e1, 4#f1
Nokia Keypress Sequence
38, 4#, 4#, 38, 49#, 38, 49#, 6, 7, 3, 4#, 4#, 38, 49#, 38, 49#, 6, 7, 3, 4#, 4#, 38, 49#, 38, 49#, 6, 7, 3, 4#, 4#, 38, 49#, 38, 49#, 6, 7, 3, 4#, 4#, 38, 49#, 38, 49#, 6, 7, 6, 49#, 38, 5#, 49#, 38, 49#
System Of A Down - Chop Suey
Nokia Composer Code
4c1, 4c1, 4.-, 4c1, 4c1, 4c1, 4c1, 4c1, 4c1, 4c1, 4c1, 4c1, 4b1, 4.-, 4b1, 4b1, 4b1, 4b1, 4b1, 4b1, 4b1, 4b1, 4d1, 4c1, 4.-, 4c1, 4c1, 4c1, 4c1, 4c1, 4c1, 4c1, 4c1, 4c1, 4b1, 4.-, 4b1, 4b1, 4b1, 4b1, 4b1, 4b1, 4b1, 4b1, 4d1, 4c1, 4-, 4c1, 4c1, 4c1, 4c1, 4-, 4c1, 4c1, 4c1, 4c1, 4c1, 4c1, 4c1, 4c1, 4c1, 4b1, 4-, 4b1, 4b1, 4b1, 4b1, 4-, 4b1, 4b1, 4b1, 4b1, 4b1, 4b1, 4b1, 4b1, 4d1, 4c1, 4-, 4c1, 4c1, 4c1, 4c1, 4-, 4c1, 4c1, 4c1, 4c1, 4c1, 4c1, 4c1, 4c1, 4c1, 4b1, 4-, 4b1, 4b1, 4b1, 4b1
Nokia Keypress Sequence
188*, 1, (Hold 0)99, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7**, (Hold 0)99, 7, 7, 7, 7, 7, 7, 7, 7, 2*, 1, (Hold 0)99, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7**, (Hold 0)99, 7, 7, 7, 7, 7, 7, 7, 7, 2*, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7**, 0, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 2*, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7**, 0, 7, 7, 7, 7
Linkin Park - One Step Closer 1
Nokia Composer Code
8#c1, 8#c2, 16#g1, 8.#d2, 8a1, 8#g1, 16#c1, 8.e1, 8#c1, 8#c2, 16#g1, 8.#d2, 8a1, 8#g1, 16#c1, 8.e1, 8#c1, 8#c2, 16#g1, 8.#d2, 8a1, 8#g1, 16#c1, 8.e1, 8#c1, 8#c2, 16#g1, 8.#d2, 8a1, 8#g1, 16#c1, 8.e1
Nokia Keypress Sequence
18#, 1*#, 58**#, (Hold 2)9*#, 6**, 5#, 18#, (Hold 3)9, 1#, 1*#, 58**#, (Hold 2)9*#, 6**, 5#, 18#, (Hold 3)9, 1#, 1*#, 58**#, (Hold 2)9*#, 6**, 5#, 18#, (Hold 3)9, 1#, 1*#, 58**#, (Hold 2)9*#, 6**, 5#, 18#, (Hold 3)9
Linkin Park - In The End 1
Nokia Composer Code
4.d1, 8-, 4.a1, 8-, 4.a1, 8-, 4.f1, 8-, 4.e1, 8-, 4.e1, 8-, 4.e1, 8-, 4e1, 4f1, 4.d1, 8-, 4.a1, 8-, 4.a1, 8-, 4.f1, 8-, 4.e1, 8-, 4.e1, 8-, 4.e1, 8-, 4e1, 4f1, 4.d1, 8-, 4.a1, 8-, 4.a1, 8-, 4.f1, 8-, 4.e1, 8-, 4.e1, 8-, 4.e1, 8-, 4e1, 4f1, 4.d1
Nokia Keypress Sequence
(Hold 2), 08, (Hold 6), 08, (Hold 6), 08, (Hold 4), 08, (Hold 3), 08, (Hold 3), 08, (Hold 3), 08, 3, 4, (Hold 2), 08, (Hold 6), 08, (Hold 6), 08, (Hold 4), 08, (Hold 3), 08, (Hold 3), 08, (Hold 3), 08, 3, 4, (Hold 2), 08, (Hold 6), 08, (Hold 6), 08, (Hold 4), 08, (Hold 3), 08, (Hold 3), 08, (Hold 3), 08, 3, 4, (Hold 2)
Aerosmith - Walk This Way
Nokia Composer Code
4f1, 4#f1, 4g1, 4c2, 4-, 4f1, 4#f1, 4g1, 4c2, 4c2, 2-, 16-, 4f1, 4#f1, 4g1, 4c2, 4-, 4f1, 4#f1, 4g1, 4c2, 4c1, 4c2, 4-, 4f1, 4#f1, 4g1, 4c2, 4-, 4f1, 4#f1, 4g1, 4c2, 4c2, 2-, 16-, 4f1, 4#f1, 4g1, 4c2, 4-, 4f1, 4#f1, 4g1, 4c2, 4c1, 4c2
Nokia Keypress Sequence
48, 4#, 5, 1*, 0, 4**, 4#, 5, 19*, 18, 099, 08, 4**, 4#, 5, 1*, 0, 4**, 4#, 5, 19*, 1**, 1*, 0, 48**, 4#, 5, 1*, 0, 4**, 4#, 5, 19*, 18, 099, 08, 4**, 4#, 5, 1*, 0, 4**, 4#, 5, 19*, 1**, 1*
National Anthem – Italy
Nokia Composer Code
4d1, 8.d1, 4e1, 2d1, 4b1, 8.b1, 4c2, 2b1, 4b1, 8.d1, 4c2, 2b1, 4a1, 8.b1, 4a1, 2g1, 4d1, 8.d1, 4e1, 2d1, 4b1, 8.b1, 4c2, 2b1, 4b1, 8.d1, 4c2, 2b1, 4a1, 8.b1, 4a1, 2g1, 4b1, 4b1, 2#f1, 8.g1, 4a1, 8.g1, 4#f1, 2e1, 4g1, 8.#f1, 4g1, 2a1, 4c1, 2b1, 4c2, 4d1, 8.d1, 4e1, 2d1, 4b1, 8.b1, 4c2, 2b1, 4b1, 8.d1, 4c2, 4.b1, 8d2, 8a1, 8d2, 4.g1
Nokia Keypress Sequence
2, (Hold 2)8, 38, 2999, 78, (Hold 7)8, 18*, 7999**, 78, (Hold 2)8, 18*, 7999**, 68, (Hold 7)8, 68, 5999, 28, (Hold 2)8, 38, 2999, 78, (Hold 7)8, 18*, 7999**, 78, (Hold 2)8, 18*, 7999**, 68, (Hold 7)8, 68, 5999, 78, 7, 49#, (Hold 5)88, 68, (Hold 5)9, 48#, 3999, 58, (Hold 4)8#, 58, 6999, 18, 79, 18*, 2**, (Hold 2)8, 38, 2999, 78, (Hold 7)8, 18*, 7999**, 78, (Hold 2)8, 18*, (Hold 7)99**, 28*, 6**, 2*, (Hold 5)9**

Wednesday, April 9, 2008

Def Leppard setlist for 2008 tour

Def Leppard setlist for 2008 tour

01. Rocket
02. Animal
03. Let's Get Rocked
04. Foolin'
05. Mirror Mirror
06. Nine Lives
07. Love Bites
08. (Bass Solo)
09. Rock On
10. Two Steps Behind
11. Bringin' on the Heartbreak
12. Switch 625
13. Hysteria
14. Armageddon It
15. Photograph
16. Pour Some Sugar on Me
Encore:
17. Rock of Ages

Tuesday, March 18, 2008

Def Leppard in India - May 2008

DEF LEPPARD has officially confirmed the following dates as part of its 2008 world tour:

May 16 - Bangalore, India - Palace Grounds
May 18 - Mumbai, India - Bandra Kurda Complex

http://www.defleppard.com/tour/

Rock in India 2008 - Megadeth (Gigantic Tour 2008) & Machine Head

Rock in India concert was definitely a huge success. There were so many Indian and International bands performing on a single day. 7 Indian and 2 international acts on one day was mind blowing...it was like an overdose of rock !!

The day started with the Indian bands performing around 2.15pm. There were two stages and the crowd was divided as to which stage to be at. half of the crowd moved to the Indian stage when the bands started playing the rest remained at the international stage

keeping their place for the main acts. There was only 1 cover of U2 played, the rest of the songs were OCs by the Indian bands.They performed till around 7.10pm.

Machine Head name on stage after this and with no further ado started performing. The entire crowd went wild and the first 20 rows there was no place to headbang, jump, start a mosh pit, etc. ppl were pushing, shoving, kicking, etc to get close to the stage. The middle of the crowd was like a tornado with ppl moving to the left, right and center like a

whirlpool. there were times when a section of the crowd lost balance and fell on the ground. but it was worth it. Robb Flynn was amazed that the crowd kept singing along with him. He raised a toast to the crowd several times and threw the booze into the crowd.At the end of every song the crowd said “Machine Fuckin Head” which again took them by surprise. I was fortunate to get 2 glasses on my face & head. He

was drinking Old Monk :O). Machine Head showed good showmanship on stage and kept the atmosphere electric. they finished their set around 8.15pm. then there was a 20 Min's delay to change the drum kit and the stage monitors.

Come the main act MEGADETH. The entrance made by Dave was simply superb. He started off with sleepwalker and with each riff being played, Chris walked on stage

followed by James and then Shawn. There was not much of crowd interaction coz of time delay but they let their music do most of the talking. Every1 in the crowd went completely berserk when they started playing and the entire crowd kept headbanging as one. Dave was astounded that for most of the songs the crowd kept backing him on vocals esp for 'a toute le monde'. They played 'Take No Prisoners', 'Skin O' My Teeth',

'Washington Is Next', 'In My Darkest Hour', 'Tornado Of Souls', 'Symphony Of Destruction', 'Trust', 'Peace Sells' & 'Holy Wars' plus a couple more. He promised that they would be back again. Dave played most of the solos . Chris guitar volume seemed to be low dunno if the sound guy made mess of the settings and pushed Dave's guitar on full volume.

This was one hell of a concert and there should definitely be more...

Thursday, March 6, 2008

Megadeth Gigantic tour 2008 set list

For MEGADETH 's gig on Monday, February 4 2008 at the Ice Hall in Helsinki, Finland the set list was:

01. Sleepwalker
02. Take No Prisoners
03. Wake Up Dead
04. Skin O' My Teeth
05. Washington Is Next!
06. Kick The Chair
07. In My Darkest Hour
08. Hangar 18
09. Gears Of War
10. A Tout Le Monde
11. Tornado Of Souls
12. Ashes In Your Mouth
13. Never Walk Alone
14. Symphony Of Destruction
15. Trust
16. Peace Sells
---------------------
17. Burnt Ice
18. Holy Wars

Javascript and XPath

In IE once an xml file has been loaded we need to set a property so that XPath can be used:

xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load("someFile.xml");
xmlDoc.setProperty("SelectionLanguage","XPath");

for other browsers like Firefox we need to set :

xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load("someFile.xml");
var nsResolver = xmlDoc.createNSResolver( xmlDoc.ownerDocument == null ? xmlDoc.documentElement : xmlDoc.ownerDocument.documentElement);

before calling the evaluate() method.

'selectionsPath' is the xpath expression that we need to form and then for getting the value(s),

//Internet explorer
if (ie)
{
var actions = xmlDoc.selectNodes(selectionsPath);
var i = 0;
for (i=0;i<actions.length;i++)
{
alert(actions[i].childNodes[0].nodeValue);
}
}
else
{
//mozilla
var actions = xmlDoc.evaluate(selectionsPath, xmlDoc, nsResolver, XPathResult.ANY_TYPE,null);
var result=actions.iterateNext();

while (result)
{
alert(result.textContent);
result=actions.iterateNext();
}
}

Tuesday, March 4, 2008

Javascript calendar showing daily events

For the basic part of constructing and displaying a HTML calendar in javascript please refer to url:
http://jszen.blogspot.com/2007/03/how-to-build-simple-calendar-with.html

Making use of the above calendar , all that is needed inorder to show events on a day to day basis, is to get a list of events for a particular day. The structure for storing the events for each day can be an xml file or a json file or any other kind of data structure that is approrpiate.

what changes are needed to be made to the code at url: http://jszen.blogspot.com/2007/03/how-to-build-simple-calendar-with.html

1) in "Calendar.prototype.generateHTML" function add a function to return all the events for a particular day

html += getDayEvents(tempYear, tempMonth, day);

2) The xml file that is used in this example is shown below:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<year id="2008">
<month id="2">
<days id="1">
<events><a href="#" target="_blank"> some other event</a></events>
</days>
<days id="2">
</days>
</month>
<month id="3">
<days id="6">
<events><a href="#" target="_blank"> some other event</a></events>
</days>
<days id="2">
</days>
</month>
</year>

3) code the javascript function

function getDayEvents(year, month, day)
{
var dayevents = "&nbsp";
//months are being referred to as Jan=0. Feb=1, etc so add 1 to the month so that it matches the normal calendar months
var tempmonth = month + 1;

var rowcount=xmlDoc.getElementsByTagName('days');
var found = false;

for(ii=0; !found && ii<rowcount.length;ii++)
{
//check if we have got the correct day , month and year
if ( (rowcount[ii].getAttribute('id') == day) && (rowcount[ii].parentNode.getAttribute('id') == tempmonth)
&& (rowcount[ii].parentNode.parentNode.getAttribute('id') == year) )
{
//get a list of all events for that day
for(jj=0;jj<rowcount[ii].childNodes.length;jj++)
{
if (rowcount[ii].childNodes[jj].text != "undefined")
{
dayevents += rowcount[ii].childNodes[jj].text;
}
}
found = true;
}
}

return dayevents;
}

4) To show previous month and next month events, add the code below to "Calendar.prototype.generateHTML" function:

html += '%lt;th colspan="1" align="left" id="previousmonth">%lt;a href="javascript:previousmonth('+currentMonth+','+ currentYear+')">previous month%lt;/a>%lt;/th>';
html += '%lt;th colspan="5" align="center">' + monthName + " " + this.year ;
html += '%lt;th colspan="1" align="right">%lt;a href="javascript:nextmonth('+currentMonth+','+ currentYear+')">next month%lt;/a>%lt;/th>';

5) code the previous and next months javascript functions

function nextmonth(month, year)
{
var nextMnth = month + 1;
if(nextMnth > 11)
{
nextMnth = 0;
year = year + 1;
}
var cal = new Calendar(nextMnth,year);
cal.generateHTML();
document.getElementById('calendarID').innerHTML = cal.getHTML();
}

function previousmonth(month ,year)
{
var prevMonth = month - 1;
if(prevMonth < 0)
{
prevMonth = 11;
year = year - 1;
}
var cal = new Calendar(prevMonth,year);
cal.generateHTML();
document.getElementById('calendarID').innerHTML = cal.getHTML();
}



The complete code is below:

%lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
%lt;html lang=en xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
%lt;head>
%lt;style type="text/css">
.calendar-table{
width : 100%;
border : 1px solid black;
}

.calendar-header{

}

.calendar-header-day {
width:14% ;
align:center;
border : 1px solid green;
}

.calendar-day{
height : 100px;
padding : 2px;
border : 1px solid blue;
}
%lt;/style>
%lt;script type="text/javascript">
//credit to http://jszen.blogspot.com/2007/03/how-to-build-simple-calendar-with.html for the logic

// these are labels for the days of the week
cal_days_labels = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];

// these are human-readable month name labels, in order
cal_months_labels = ['January', 'February', 'March', 'April',
'May', 'June', 'July', 'August', 'September',
'October', 'November', 'December'];

// these are the days of the week for each month, in order
cal_days_in_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

// this is the current date
cal_current_date = new Date();

var currentMonth;
var currentYear;
function Calendar(month, year) {
this.month = (isNaN(month) || month == null) ? cal_current_date.getMonth() : month;
this.year = (isNaN(year) || year == null) ? cal_current_date.getFullYear() : year;
this.html = '';
currentMonth=this.month;
currentYear=this.year;
}

Calendar.prototype.generateHTML = function(){
var xmlDoc;
parseXML();
// get first day of month
var firstDay = new Date(this.year, this.month, 1);
var startingDay = firstDay.getDay();

// find number of days in month
var monthLength = cal_days_in_month[this.month];

// compensate for leap year
if (this.month == 1) { // February only!
if((this.year % 4 == 0 && this.year % 100 != 0) || this.year % 400 == 0){
monthLength = 29;
}
}

// do the header
var monthName = cal_months_labels[this.month]
var html = '%lt;table class="calendar-table" cellspacing="1" cellpadding="2">';
html += '%lt;tr>';
html += '%lt;th colspan="1" align="left" id="previousmonth">%lt;a href="javascript:previousmonth('+currentMonth+','+ currentYear+')">previous month%lt;/a>%lt;/th>';
html += '%lt;th colspan="5" align="center">' + monthName + " " + this.year ;
html += '%lt;th colspan="1" align="right">%lt;a href="javascript:nextmonth('+currentMonth+','+ currentYear+')">next month%lt;/a>%lt;/th>';
html += '%lt;/th>%lt;/tr>';
html += '%lt;tr class="calendar-header">';
for(var i = 0; i %lt;= 6; i++ ){
html += '%lt;td class="calendar-header-day">';
html += cal_days_labels[i];
html += '%lt;/td>';
}
html += '%lt;/tr>%lt;tr>';


// fill in the days
var day = 1;
var tempMonth = this.month;
var tempYear = this.year ;
// this loop is for is weeks (rows)
for (var i = 0; i %lt; 9; i++) {
// this loop is for weekdays (cells)
for (var j = 0; j %lt;= 6; j++) {
html += '%lt;td class="calendar-day" valign="top">';
if (day %lt;= monthLength && (i > 0 || j >= startingDay)) {
html += day ;
html += getDayEvents(tempYear, tempMonth, day);
day++;
}
html += '%lt;/td>';
}
// stop making rows if we've run out of days
if (day > monthLength) {
break;
} else {
html += '%lt;/tr>%lt;tr>';
}
}
html += '%lt;/tr>%lt;/table>';

this.html = html;

function parseXML()
{
try
{ //try IE first
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
}
catch(e)
{
try
{ //try Mozilla, Firefox, Opera, etc.
xmlDoc=document.implementation.createDocument("","",null);
}
catch(e)
{
alert(e.message);
return;
}
}
xmlDoc.async=false;
xmlDoc.load("CalendarEvents.xml");

}

function getDayEvents(year, month, day)
{
var dayevents = "&nbsp";
var tempmonth = month + 1;

var rowcount=xmlDoc.getElementsByTagName('days');
var found = false;

for(ii=0; !found && ii%lt;rowcount.length;ii++)
{
if ( (rowcount[ii].getAttribute('id') == day) && (rowcount[ii].parentNode.getAttribute('id') == tempmonth)
&& (rowcount[ii].parentNode.parentNode.getAttribute('id') == year) )
{
for(jj=0;jj%lt;rowcount[ii].childNodes.length;jj++)
{
if (rowcount[ii].childNodes[jj].text != "undefined")
{
dayevents += rowcount[ii].childNodes[jj].text;
}
}
found = true;
}
}

return dayevents;
}


}

Calendar.prototype.getHTML = function() {
return this.html;
}

function nextmonth(month, year)
{
var nextMnth = month + 1;
if(nextMnth > 11)
{
nextMnth = 0;
year = year + 1;
}
var cal = new Calendar(nextMnth,year);
cal.generateHTML();
document.getElementById('calendarID').innerHTML = cal.getHTML();
}

function previousmonth(month ,year)
{
var prevMonth = month - 1;
if(prevMonth %lt; 0)
{
prevMonth = 11;
year = year - 1;
}
var cal = new Calendar(prevMonth,year);
cal.generateHTML();
document.getElementById('calendarID').innerHTML = cal.getHTML();
}

function init()
{
var now = new Date();

var cal = new Calendar(now.getMonth(),now.getFullYear());
cal.generateHTML();
document.getElementById('calendarID').innerHTML = cal.getHTML();
}
%lt;/script>

%lt;/head>
%lt;body onload="init()">

%lt;div id="calendarID">%lt;/div>
%lt;/body>
%lt;/HTML>

Getting around in Bangalore

http://www.btis.in/


This is a very good site for new comers to Bangalore. This site gives point to point directions that shows most of the roads along the route with the autorickshaw fare !! The results are displayed in a map which is easy to read provided you know the roads being shown :O).

It also gives live traffic updates, BMTC bus stops and car pools.

Refresh a browser (client side) automatically

Inorder to do a client side refresh automatically you will need to add the below line to your webpage:

<META HTTP-EQUIV=Refresh CONTENT="10; URL=http://www.aabbcc.com/">

where '10' is the number of seconds to wait since the webpage was already loaded and 'http://www.aabbcc.com/' is the url to reload.

Wednesday, February 27, 2008

Accessing javascript methods from an IFRAME

If you need to access any javascript methods defined in the parent/main webpage from an IFRAME make use of the top property followed by the javascript method name ex. top.myfunction() ; where myfunction() has been defined in the parent/main webpage.


vice-versa to access methods from within an IFRAME in the parent/main webpage, you will need the following syntax:
window.<>.<> ex.window.sub_frame.subpagedisplay(); where sub_frame is the frame ID defined in the parent/main webpage and subpagedisplay() is the javascript function defined in the subpage or in the iframe src property.



NOTE: Both the html files shown below need to be on the same DOMAIN as browsers do NOT allow cross-site scripting.

complete parent/main webpage code: mainHTML.html


<html>
<head>
</head>
<iframe id="sub_frame" name="sub_frame" src="sub_frame.html"></iframe>

<script type="text/javascript"><!--
function myfunction()
{
alert('main page function called');
}

function subpagefn()
{
window.sub_frame.subpagedisplay();
}
//-->
</script>
<body>
main page
<a href="javascript:subpagefn();">call sub page function</a>
</body>
</html>




complete subpage/IFRAME webpage code: sub_frame.html

<html>
<head>
<script type="text/javascript"><!--
function showme()
{
top.myfunction() ;
}

function subpagedisplay()
{
alert('in sub page');
}
//-->
</script>
</head>
<body>
iframe page
<a href="javascript:showme()">some link</a>
</body>
</html>

Tuesday, February 26, 2008

Creating dynamic HTML tables with Javascript

when creating a dynamic HTML table in javascript, first
1) create a TABLE
2) create a TBODY
3) create rows, TR
4) create cells, TD
5) append the cells TD to the rows TR
6) append the rows TR to the TBODY
if this is not done then the entire table will not be visible.
7) append the TBODY to the TABLE
8) attached the TABLE to the required DOM node in HTML document

complete code for the above steps:

var newTbody = document.createElement("tbody");
var mainTable = document.createElement("table");
var newTR = document.createElement("tr");
var newTD = document.createElement("td");
newTD.innerHTML = 'some text';
newTR.appendChild(newTD);
newTbody.appendChild(newTR);
mainTable.appendChild(newTbody);
document.getElementById('someDomID').appendChild(mainTable);


The following code without a TBODY ends up with the entire TABLE not being visible.

var mainTable = document.createElement("table");
var newTR = document.createElement("tr");
var newTD = document.createElement("td");
newTD.innerHTML = 'some text';
newTR.appendChild(newTD);
mainTable.appendChild(newTR);
document.getElementById('someDomID').appendChild(mainTable);

Left and right alignment using single DIV tag

Inorder to align say 2 text elements left and right on the same line using a single DIV tag, we need to

1) use the "style" property of the DIV tag and include "position: relative; text-align: center; " in it. see code below.

<div style="width:80%; height:40px; background-color: #EEEEEE; position: relative; text-align: center; width: 100%;"> </div>



2) for text that needs to be left aligned, again use the "style" property and include "position: absolute;left: 0;" in it. if you need spacing around the text then include the 'padding' attribute so "style" should read "position: absolute;left: 0;padding:10px".
see code below.

<label for="aaa" style="position: absolute;left: 0;padding:10px">some text to left</label>



3) for text that needs to be right aligned, again use the "style" property and include "position: absolute;right: 0;" in it. if you need spacing around the text then include the 'padding' attribute so "style" should read "position: absolute;right: 0;padding:10px".
see code below.

<label for="aaa" style="position: absolute;right: 0;padding:10px">some text to right</label>



Complete code.

<div style="width:80%; height:40px; background-color: #EEEEEE; position: relative; text-align: center; width: 100%;">

<label for="aaa" style="position: absolute;left: 0;padding:10px">some text to left</label>

<label for="aaa" style="position: absolute;right: 0;padding:10px">some text to right</label>

</div>

Wednesday, February 20, 2008

Parameter passing in Ajax - XMLHttpRequest

Inorder to make an asynchronous call to a server we need to :
1.) create a XMLHttpRequest object.
2.) (a) check the state of the 'readyState' property of the created XMLHttpRequest object. if this value is '4' (numeric 4), it means that the processing is complete and the response returned from the server is ready for use.
(b) assign a javascript function to 'onreadystatechange' method. This javascript function is called whenever the servers reponse is complete and then the data can be processed.

The code

var xmlHttp;
try
{ // Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{ // Internet Explorer try
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser does not support AJAX!");
return false;
}
}
}

xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
document.myForm.time.value = xmlHttp.responseText;
}
}

deals will the above 2 points.

There are two ways to pass parameters using XMLHttpRequest object.
1.) appending the parameters to the end of the url.

on the client side we need to write the code as shown below, where 'elementID' is a parameter

xmlHttp.open("GET","ajax.do?elementID='this is an element'",true);


on the server side we read the values as

HttpServletRequest.getParameter("elementID");

or

HttpServletRequest.getHeader("elementID");

with the "GET" action both 'getParameter' and 'getHeader' methods work.

2.) using the 'setRequestHeader' method of XMLHttpRequest object.

on the client side we need to write the code below, where 'elementID' is a parameter and 'testajax' is the java servlet

xmlHttp.open("POST","testajax",true);
xmlHttp.setRequestHeader("elementID" , "xxxxyyyyzzzz");


on the server side we read the values as

HttpServletRequest.getHeader("elementID");

with the "POST" action ONLY 'getHeader' method works.

Dynamically show/hide HTML elements using DIV tags

Using "div" tags and their 'style.visibility' property, its relatively easy to show/hide dynamically created HTML elements. As normal every HTML element needs to have a UNIQUE ID inorder for this functionality to be achieved.

Initially when the HTML document is loaded we call a method 'ofPageInit()' which creates the tag and say a 'textarea' HTML element which has to be shown on clicking a button or link.

The code

mybox = document.createElement('textarea');
mybox.setAttribute('id', editArray[i].id);
mybox.setAttribute('rows','2');
mybox.setAttribute('cols','15');

is used to create dynamically a textarea HTML element. The Id of this textarea is set based on the "TD"'s id. Using setAttribute() we specify that we need 2 rows and 15 columns for the dimensions of this text area.


Next we create dynamic "div" tags

mydiv = document.createElement('div');
mydiv.setAttribute('id', 'div'+editArray[i].id);
mydiv.style.visibility = 'hidden';

and set their initial 'visibility' property to hidden so that it is not displayed on screen when the form is first loaded.

We then create a dynamic anchor tag

myCancellink = document.createElement('a');
myCancellink.onclick = hidebox ;
myCancellink.href = "#";
myCancellink.innerHTML = "cancel";

onclicking the link 'cancel', the method 'hidebox' is called. This method sets the 'parentElement', in this case the "div"tag, 'visibility' property to 'hidden' so that it does not get displayed on screen.

On clicking the 'edit' link, we just change the 'visibility' property to 'visible' so that the corresponding "div" tags content is displayed on screen.